เหตุใดการติดตาม monte carlo ray จึงทำงานได้ดีกว่าการติดตามการกระจายรังสี


30

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

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


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

@robobenklein แก้ไขคำถามแล้วโปรดระวังให้ดีกว่านี้)
p2 หรือ

@ChristianRau การลบ "ขอบคุณ" ควรจะกล่าวถึงใน meta นี้จะแตกต่างกันในทุก ๆ เว็บไซต์แลกเปลี่ยนสแต็ค ...
p2or

1
@poor ไม่มันไม่ใช่อย่างนั้นจริงๆ นั่นคือสิ่งที่ไม่เคยมีการเปลี่ยนแปลง และตราบใดที่เราไม่มีกฎพิเศษเราก็จ้าง SE ทั่วไป แต่ถึงอย่างนั้นฉันก็ยังนึกไม่ออกว่าใครได้รับอนุญาตให้ลงคะแนนที่นี่ ฉันไม่เคยเห็นนี่เป็นการปฏิบัติที่ดีในเว็บไซต์ SE อื่น ๆ
คริสพูดว่า Reinstate Monica

คำตอบ:


31

คำว่า "การติดตามรังสีแบบกระจาย" นั้น แต่เดิมประกาศเกียรติคุณจาก Robert Cook ในบทความนี้. การสังเกตของเขาคือการที่จะทำการต่อต้านนามแฝงใน ray-tracer, renderer จำเป็นต้องดำเนินการสุ่มตัวอย่างเชิงพื้นที่ - นั่นคือการใช้ตัวอย่างเพิ่มเติม (เช่นยิงรังสีมากกว่า) จำนวนพิกเซลในภาพและรวมผลลัพธ์ของพวกเขา . วิธีหนึ่งในการทำเช่นนี้คือถ่ายภาพรังสีหลาย ๆ ลูกภายในหนึ่งพิกเซลและหาค่าสีโดยเฉลี่ย อย่างไรก็ตามหากตัวเรนเดอร์มีการติดตามหลายรังสีต่อพิกเซลอยู่แล้วเพื่อให้ได้ภาพที่ต่อต้านนามแฝงรังสีเหล่านี้ยังสามารถ "กระจาย" ในมิติอื่น ๆ มากกว่าตำแหน่งพิกเซลเพื่อเอฟเฟกต์ตัวอย่างที่ไม่สามารถจับภาพด้วยรังสีเดียว . บิตที่สำคัญคือสิ่งนี้เกิดขึ้นโดยไม่มีค่าใช้จ่ายเพิ่มเติมใด ๆ จากการอัปโหลดพื้นที่เนื่องจากคุณได้ติดตามรังสีเพิ่มเติมเหล่านั้นอยู่แล้ว ตัวอย่างเช่น,

การติดตามรังสีของมอนติคาร์โลเป็นคำที่คลุมเครือเล็กน้อย ในกรณีส่วนใหญ่มันหมายถึงเทคนิคการเรนเดอร์ที่แก้สมการเรนเดอร์เปิดตัวโดย Jim Kajiya ในปี 1986 โดยใช้การรวม Monte Carlo เทคนิคการเรนเดอร์สมัยใหม่ทั้งหมดที่แก้สมการเรนเดอร์เช่นการติดตามเส้นทางการติดตามเส้นทางสองทิศทางการทำแผนที่โฟตอนแบบก้าวหน้าและ VCM สามารถจำแนกได้ว่าเป็นเทคนิคการติดตามเรย์มอนติคาร์โล แนวคิดของการรวม Monte Carlo คือเราสามารถคำนวณอินทิกรัลของฟังก์ชันใด ๆ โดยการสุ่มเลือกจุดในโดเมนการรวมและค่าเฉลี่ยของฟังก์ชันที่จุดเหล่านี้ ในระดับสูงในการติดตามรังสีของ Monte Carlo เราสามารถใช้เทคนิคนี้เพื่อรวมปริมาณแสงที่มาถึงกล้องภายในพิกเซลเพื่อคำนวณค่าพิกเซล ตัวอย่างเช่นตัวติดตามเส้นทางทำสิ่งนี้โดยการสุ่มเลือกจุดภายในพิกเซลเพื่อยิงรังสีแรกและจากนั้นจะสุ่มเลือกทิศทางเพื่อดำเนินการต่อบนพื้นผิวที่มันตกลงมา และอื่น ๆ นอกจากนี้เรายังสามารถสุ่มเลือกตำแหน่งบนแกนเวลาได้หากเราต้องการให้ภาพเคลื่อนไหวเบลอหรือเลือกจุดบนรูรับแสงแบบสุ่มหากต้องการทำระยะชัดลึกหรือ ...

ถ้ามันฟังดูคล้ายกับการติดตามการกระจายรังสีนั่นเป็นเพราะมันเป็น! เราสามารถนึกถึงการติดตามการกระจายรังสีเป็นคำอธิบายที่ไม่เป็นทางการของอัลกอริธึม Monte Carlo ที่ตัวอย่างผลกระทบบางอย่างเช่นเงานุ่ม กระดาษของ Cook ขาดกรอบทางคณิตศาสตร์ในการให้เหตุผลเกี่ยวกับมันอย่างถูกต้อง แต่คุณสามารถใช้การติดตามรังสีแบบกระจายโดยใช้ตัวเรนเดอร์ Monte Carlo อย่างง่าย เป็นที่น่าสังเกตว่าการติดตามรังสีแบบกระจายไม่มีคำอธิบายเกี่ยวกับผลกระทบจากการส่องสว่างทั่วโลกซึ่งเป็นแบบจำลองตามธรรมชาติในสมการเรนเดอร์

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

ทุกวันนี้ "การติดตามรังสีแบบกระจาย" ไม่ใช่คำที่ใช้เรียกอัลกอริธึมดั้งเดิม บ่อยครั้งที่คุณจะได้ยินมันร่วมกับ "เอฟเฟ็กต์การกระจาย" ซึ่งเป็นเอฟเฟกต์อย่างง่ายเช่นการเคลื่อนไหวเบลอความชัดลึกหรือเงานุ่ม ๆ ที่ไม่สามารถจัดการกับเครื่องทดสอบรังสีเดี่ยว


5

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

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

ดังนั้นการติดตามเส้นทางจะให้ผลลัพธ์ที่ดีกว่า


2
"ในขณะที่ในการติดตามรังสีของมอนติคาร์โลหรือเพียงแค่การติดตามเส้นทางคุณจะต้องทดสอบรังสีเพียงหนึ่งรังสีในทิศทางที่ BRDF ต้องการ" นอกจากนี้คุณยังไม่รู้วิธีการเลือกรังสี วิธีการไร้เดียงสาใช้รังสีสุ่ม การคำนึงถึง BRDF คือการสุ่มตัวอย่างที่สำคัญและไม่ได้มีอยู่ในการติดตามรังสีของ Monte Carlo หรือการติดตามเส้นทาง
David Kuri

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