แสงไฟเร็วพร้อมไฟหลายดวง


10

ฉันจะใช้แสงที่รวดเร็วพร้อมแสงหลายดวงได้อย่างไร

ฉันไม่ต้องการ จำกัด ผู้เล่นเขาสามารถวางจำนวนไม่ จำกัด และอาจมีการซ้อนทับกัน (จุด) ไฟในระดับ

ปัญหาคือเฉดสีที่มีลูปแบบไดนามิกซึ่งจะจำเป็นในการคำนวณแสงมักจะช้ามาก

ฉันมีความคิดว่าถ้ามันเป็นไปได้ในเวลาคอมไพล์ไทม์เพื่อรวบรวม shader n คูณโดยที่ n คือจำนวนแสง หากทราบหมายเลข n ในเวลาคอมไพล์ไทม์สามารถยกเลิกการวนซ้ำได้โดยอัตโนมัติ เป็นไปได้ไหมที่จะสร้าง shader เดียวกันรุ่น n ที่มีจำนวนแสงแตกต่างกัน?

ที่รันไทม์ฉันสามารถตัดสินใจได้ว่า shader ใดที่จะใช้ในส่วนของระดับ


หากไฟถูกเพิ่มโดยผู้เล่นแบบไดนามิก shader "compiletime" จะเป็นคำตอบที่ถูกต้องได้อย่างไร
เซทแบ

ดังที่ฉันได้เขียนคอมไพเลอร์สามารถสร้างเฉดสีสำหรับ 1,2,3, .. แสงและที่รันไทม์ฉันสามารถตัดสินใจได้ว่าจะใช้อัน
ไหน

ผู้รวบรวมเวลาจำเป็นต้องรู้ว่าไฟจะถูกวางไว้ที่ใดความมีชีวิตชีวาของแสงจะทำลายพวกเขา
วงล้อประหลาด

จำนวนไฟเท่านั้นที่ควรเป็นแบบไดนามิก ตำแหน่งที่จะได้รับเป็นพารามิเตอร์
codymanix

1
ดูเหมือนคุณจะได้คำตอบ คุณรู้จำนวนไฟสูงสุดและช่วงของตำแหน่งที่เป็นไปได้
ashes999

คำตอบ:


8

ฉันเชื่อว่าสิ่งที่คุณกำลังมองหาเรียกว่าการแสดงผลที่เลื่อนออกไป มันเป็นเทคนิคการเรนเดอร์ที่ปรับขนาดได้ดีมากด้วยแสงจำนวนมากดังนั้นมันจึงสามารถใช้สำหรับการส่องสว่างทางอ้อมแบบไดนามิก นั่นหมายถึงไฟ 1000s บนหน้าจอ

โดยทั่วไปแล้วเป็นเทคนิคที่คุณแสดงข้อมูลเรขาคณิตของคุณทั้งหมด (ตำแหน่งปกติความลึก) ลงในบัฟเฟอร์พิกเซลกลาง (เรียกว่า G-Buffer) จากนั้นในรอบที่สองคุณจะแสดงรูปร่างที่เบาพร้อมกับพารามิเตอร์ ส่วนที่สองของการผ่านครั้งนี้จะนำข้อมูลจาก G-Buffer ไปใช้การคำนวณแบบอ่อนจากนั้นก็ผสมลงในภาพสุดท้าย

คุณสามารถดูรายละเอียดการใช้งานได้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.