ไม่ใช่ Raytracing ตามเวลาจริง


13

ฉันเล่นกับ raytracing แบบเรียลไทม์ (และ raymarching ฯลฯ ) ไม่น้อย แต่ไม่ได้ใช้เวลามากในการถ่ายทำแบบเรียลไทม์สำหรับภาพที่มีคุณภาพสูงขึ้นหรือสำหรับวิดีโอที่แสดงล่วงหน้าและสิ่งที่คล้ายกัน

ฉันรู้เทคนิคทั่วไปหนึ่งอย่างในการปรับปรุงคุณภาพของภาพในกรณีที่ไม่ใช่แบบเรียลไทม์คือการฉายรังสีมากขึ้นต่อพิกเซลและให้ผลลัพธ์โดยเฉลี่ย

มีเทคนิคอื่นใดบ้างที่โดดเด่นในเรื่องวิธีการที่ดีในการปรับปรุงคุณภาพของภาพในกรณีที่ไม่ใช่แบบเรียลไทม์มากกว่าปกติที่คุณทำในแบบเรียลไทม์?

คำตอบ:


9

การติดตามเส้นทางเป็นเทคนิคมาตรฐานในการเรนเดอร์แบบเรียลไทม์แบบเรียลไทม์และคุณควรมองหาการติดตามเส้นทางแบบสองทิศทางโดยเฉพาะเพื่อรับเอฟเฟกต์เช่นการกัดกร่อนซึ่งคุณไม่สามารถทำได้ด้วยการติดตามเส้นทางพื้นฐาน การติดตามเส้นทางแบบสองทิศทางยังผสานความจริงของพื้นดินได้เร็วขึ้นดังที่แสดงในภาพด้านล่าง: ป้อนคำอธิบายรูปภาพที่นี่ เช่นกัน Metropolis light transport (MLT) เป็นเทคนิคการติดตามเส้นทางขั้นสูงที่แปลงมาบรรจบกับความจริงภาคพื้นดินได้เร็วขึ้น ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้คุณยังสามารถใช้การสุ่มตัวอย่างที่สำคัญสำหรับการลู่เข้าที่เร็วขึ้นโดยการโฟกัสไปที่ทิศทางที่มีความสำคัญมากกว่า เช่นโดยการโฟกัสด้วยรังสีตาม BRDF (ไปทางเข็ม BRDF โดยใช้ฟังก์ชั่นความหนาแน่นของความน่าจะเป็น) หรือไปยังแหล่งกำเนิดแสงหรือทำให้ดีที่สุดในโลกทั้งสองและใช้การสุ่มตัวอย่างที่มีความสำคัญหลายอย่าง ป้อนคำอธิบายรูปภาพที่นี่ นี่คือทั้งหมดที่เกี่ยวกับการลดเสียงรบกวนในลักษณะที่เป็นกลาง นอกจากนี้ยังมีเทคนิค denoisingเพื่อลดสัญญาณรบกวนในภาพที่แสดง ป้อนคำอธิบายรูปภาพที่นี่

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

นอกจากนี้คุณยังสามารถได้ผลลัพธ์ที่ยอดเยี่ยมด้วยการใช้การติดตามเส้นทางกับสื่อที่เข้าร่วม ป้อนคำอธิบายรูปภาพที่นี่


5

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

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


พื้นผิวการแบ่งถูกใช้มากกว่าเรขาคณิตที่เป็นของแข็งที่สร้างสรรค์ พวกเขายังคงเกี่ยวข้องกับรูปสามเหลี่ยม (หรือเส้นโค้งหรือ)

3

แม้ว่าฉันไม่รู้เกี่ยวกับการติดตามเส้นทาง monte carlo เมื่อฉันเขียนสิ่งนี้ แต่ฉันก็อธิบายโดยไม่ตั้งใจ แดกดันการติดตามเส้นทางมอนต์คาร์โลเป็นคำตอบที่ฉันกำลังมองหาในเวลา

การติดตามเส้นทางไร้เดียงสามอนติคาร์โลทำงานโดยการประเมินสิ่งที่เรียกว่าสมการเรนเดอร์เพื่อแก้ไขค่าสีของพิกเซล มันต้องสุ่มตัวอย่างโดยสุ่มแบบสุ่มภายในพิกเซล (มีกลยุทธ์การสุ่มตัวอย่างที่ดีกว่าและการกรอง: อะไรคือเหตุผลพื้นฐานของการต่อต้านนามแฝงโดยใช้ตัวอย่างสุ่มหลาย ๆ ตัวในพิกเซล ) และโดยการตีกลับในทิศทางสุ่มเมื่อรังสีกระทบพื้นผิว .

อาจต้องใช้ตัวอย่างจำนวนมากเพื่อให้ได้ผลลัพธ์ที่ดีและหากมีตัวอย่างไม่เพียงพอภาพของคุณจะมีเสียงดัง มันใช้เวลา 4 เท่าในการตัดเสียงครึ่งหนึ่ง เวลาของการแสดงผลสามารถทำได้ในหนึ่งชั่วโมงโดยใช้คอร์ CPU ที่ทันสมัย ​​8 คอร์สำหรับฉากที่เรียบง่าย

มีเทคนิคการติดตามพา ธ monte carlo ขั้นสูงที่ให้คุณได้ภาพที่ดีกว่าได้เร็วขึ้นเช่นการสุ่มตัวอย่างที่สำคัญหรือ denoising ภาพหลังจากที่แสดงผลแล้ว

การติดตามเส้นทางมอนติคาร์โลสามารถสร้างภาพเหมือนจริงและให้คุณสมบัติการเรนเดอร์ขั้นสูงมากมายเนื่องจากเป็นไปตามกฎหมายทางกายภาพเพื่อให้ได้ผลลัพธ์ที่สมจริง

คุณสามารถอ่านเพิ่มเติมได้ที่นี่: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/

นี่คือภาพตัวอย่างซึ่งใช้เวลาประมาณหนึ่งชั่วโมงในการเรนเดอร์โดยใช้แกนซีพียูทั้ง 8 ตัวของฉัน:

ป้อนคำอธิบายรูปภาพที่นี่

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