Ánh sáng nhanh với nhiều đèn


10

Làm thế nào tôi có thể thực hiện ánh sáng nhanh với nhiều đèn?

Tôi không muốn hạn chế người chơi, anh ta có thể đặt một số lượng không giới hạn và có thể chồng chéo (điểm) vào cấp độ.

Vấn đề là các shader có chứa các vòng động cần thiết để tính toán ánh sáng có xu hướng rất chậm.

Tôi đã có ý tưởng rằng nếu có thể vào lúc đó thì có thể biên dịch một shader n lần trong đó n là số lượng ánh sáng. Nếu số n được biết tại compXLime, các vòng lặp có thể được hủy tự động. Điều này có thể tạo ra n phiên bản của cùng một shader chỉ với một số lượng ánh sáng khác nhau không?

Sau đó, tôi có thể quyết định sử dụng shader nào cho phần nào của cấp độ.


Nếu người chơi tự động thêm đèn, làm thế nào một shader "compXLime" có thể là câu trả lời chính xác?
Seth Battin

Như tôi đã viết, trình biên dịch có thể tạo ra các shader cho 1,2,3, .. ánh sáng và trong thời gian chạy tôi có thể quyết định sử dụng cái nào cho phần nào của cấp độ
codymanix

biên dịch các shader thời gian cần biết nơi sẽ đặt đèn, bất kỳ sự năng động nào của đèn sẽ làm hỏng chúng
ratchet freak

chỉ có số lượng đèn nên năng động. các vị trí sẽ được cung cấp như là tham số.
codymanix

1
Có vẻ như bạn có câu trả lời của bạn. Bạn biết số lượng đèn tối đa và phạm vi vị trí có thể.
tro999

Câu trả lời:


8

Tôi tin rằng những gì bạn đang tìm kiếm được gọi là Trì hoãn kết xuất. Đây là một kỹ thuật dựng hình có tỷ lệ cực kỳ tốt với rất nhiều ánh sáng, tốt đến mức nó có thể được sử dụng để chiếu sáng gián tiếp năng động. Điều đó có nghĩa là 1000 bóng đèn trên màn hình.

Về cơ bản, đây là một kỹ thuật mà trước tiên bạn kết xuất tất cả dữ liệu hình học của mình (vị trí, bình thường, độ sâu) vào bộ đệm pixel trung gian (được gọi là Bộ đệm G). Sau đó trong một giây, bạn đưa ra một hình dạng ánh sáng cùng với các tham số của nó. Trình tạo bóng của đường chuyền thứ hai này lấy thông tin từ G-Buffer, áp dụng tính toán ánh sáng, sau đó trộn nó vào hình ảnh cuối cùng.

Bạn có thể tìm thấy chi tiết thực hiện ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.