2012-01-16 8 views
5

Tôi có một cây BSP được tải vào bộ nhớ. Lần đầu tiên tôi tìm ra lá tôi đang ở. Tiếp theo, tôi giải mã PVS. Sau đó, tôi chạy qua từng khu vực trong PVS đó và xem liệu nó có nằm trong sự thất vọng của tôi không.Tôi có thể kết xuất các cây BSP không chính xác không?

Tôi đã được thông báo rằng đây là cách không chính xác để hiển thị và tôi thực sự phải thực hiện quay lại hiển thị trước bằng cách đi qua cây BSP. Làm thế nào chính xác để tôi làm điều này? Tôi đã thấy một số phương pháp khác nhau để làm điều này, đó là lý do tại sao tôi hỏi.

Ví dụ: hiển thị Quake 3 BSP cho biết: Đi qua BSP để xác định vị trí của máy ảnh. Truy xuất và giải nén PVS cho lá này, lặp qua PVS và đánh dấu lá trong BSP. Đi qua BSP gần đến xa Nếu Nút không được đánh dấu, hãy bỏ qua nút đó. Kiểm tra Hộp ranh giới Nút chống lại Camera Frustrum. Thêm lá hiện tại vào danh sách hiển thị

Đây vẫn là cách tiêu chuẩn được thực hiện ngay hôm nay hoặc ít nhất là cho các trò chơi đơn giản hơn.

+0

trước để quay lại là hiển thị ưa thích hiện nay; trở lại trước chỉ cần thiết cho thuật toán của họa sĩ (tức là trước khi nén, các bộ đệm z băng thông cao làm cho chúng trở nên thích hợp hơn). front-to-back cho phép z-từ chối sớm (mọi thứ đằng sau những gì bạn đã vẽ sẽ bị từ chối, trong phần cứng hiện đại, trước khi làm việc nhiều hơn là xác định và kiểm tra giá trị z của nó được thực hiện). Tôi sẽ bình luận lại khi tôi nhận được nhiều hơn một chút. –

Trả lời

1

Như OrgnlDave nói:

Khi bạn vẽ một nguyên thủy, các pixel được đặt ở phía trước của z-buffer sẽ sơn và Shader chương trình sẽ được thực thi. Nhưng nếu pixel ở đằng sau cảnh thì pixel bị từ chối. Không có nghĩa vụ phải thực hiện như vẽ, phía trước để trở lại, nhưng đạt được trong hiệu suất là tồi tệ nhất nó.

Tuy nhiên nếu bạn sử dụng đối tượng kết hợp, bạn sẽ cần phải vẽ cái này sau mỗi đối tượng rắn và làm điều đó từ sau ra trước. Bởi vì bạn cần phải pha trộn màu sắc với đối tượng được đặt ngay sau đó.

+0

@OrgnlDave Well Said. Pixel điền là tốn kém. Đây là một điểm của đường dẫn nơi cần có quyền truy cập ghi vào tài nguyên được chia sẻ. Các bóng đổ Vertex có thể chạy song song và tạo ra các danh sách hình học đồng thời tuy nhiên khi Pixel Shader đang ghi vào Bộ đệm màu hoặc Bộ đệm Z, chỉ một chương trình có thể truy cập cùng một bộ nhớ cùng một lúc. Render hình học đục từ trước ra sau, để loại bỏ điểm ảnh điền vào các đối tượng được bao phủ lên, và sau đó làm cho hình học không đục từ trở lại phía trước, do đó, hình học bị che khuất sẽ có trọng lượng trong pha trộn alpha. – Dan