Tôi nên triển khai hơn 8 đèn trong OpenGL như thế nào?OpenGL: Hiển thị hơn 8 đèn, làm cách nào?
Tôi muốn hiển thị số lượng không giới hạn hiệu quả của đèn.
Vì vậy, phương pháp ưa thích để thực hiện việc này là gì?
Tôi nên triển khai hơn 8 đèn trong OpenGL như thế nào?OpenGL: Hiển thị hơn 8 đèn, làm cách nào?
Tôi muốn hiển thị số lượng không giới hạn hiệu quả của đèn.
Vì vậy, phương pháp ưa thích để thực hiện việc này là gì?
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ù.
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: / –