2010-01-03 28 views

Trả lời

14

Làm mờ bóng tối.

Tóm lại, bạn hiển thị cảnh của mình mà không cần bất kỳ đèn nào. Thay vào đó bạn lưu trữ các normals và các vị trí trên thế giới cùng với các pixel kết cấu thành nhiều frame-buffer (được gọi là render targets). Bạn thậm chí có thể thực hiện điều này trong một lần truyền nếu bạn sử dụng nhiều tiện ích mở rộng kết xuất mục tiêu.

Khi bạn đã chuẩn bị bộ đệm, bạn bắt đầu hiển thị một loạt các điểm ảnh toàn màn hình, mỗi điểm có chương trình đổ bóng pixel đọc ra các chuẩn và vị trí và tính ánh sáng cho một hoặc nhiều nguồn sáng.

Vì ánh sáng là phụ gia, bạn có thể hiển thị càng nhiều màn hình rộng hơn như bạn muốn và tích lũy ánh sáng cho nhiều nguồn sáng tùy thích.

Bước cuối cùng là bố cục giữa ánh sáng của bạn và bộ đệm khung được kết cấu không sáng tạo.

Đó là nhiều hơn hoặc ít hơn cách tối tân để thực hiện điều đó. Bắt sương mù và minh bạch làm việc với một hệ thống như vậy là một thách thức mặc dù.

7

Đèn OpenGL là một hệ thống đơn giản, theo như tôi biết đã có trong danh sách không dùng nữa. Bạn nên tự xử lý đèn bằng cách viết shader. Hãy xem here.

+1

hướng dẫn cho biết "do đó cách tiếp cận tốt nhất là biên dịch các trình đổ bóng khác nhau cho các số lượng đèn khác nhau". umm ... thats không thực sự những gì tôi muốn làm, vì tôi có thể di chuyển trên thế giới và đôi khi có thể có 100 đèn chiếu sáng, đôi khi 10 đèn ... tôi sẽ không muốn viết lên đến 2000 shaders cho mọi kết hợp có thể nhìn thấy đèn. Hay tôi đã hiểu điều gì đó khủng khiếp sai: / –

Các vấn đề liên quan