คำถามติดแท็ก pathtracing

สำหรับคำถามเกี่ยวกับอัลกอริทึมการติดตามเส้นทางของมอนติคาร์โลสำหรับการส่องสว่างทั่วโลกที่แม่นยำทางกายภาพหรือรูปแบบต่างๆ

2
ติดตามเส้นทาง Cook-Torrance BRDF
- ขออภัยสำหรับการโพสต์ที่ยาวนาน แต่ฉันชอบที่จะทำอย่างนั้นเพราะ " ปีศาจอยู่ในรายละเอียด " :) ฉันกำลังเขียนตัวติดตามเส้นทางจากรอยขีดข่วนและมันทำงานได้ดีสำหรับพื้นผิวที่กระจายอย่างสมบูรณ์ (Lambertian) ( เช่นการทดสอบการบ่งชี้ของเตาเผา - อย่างน้อยก็มองเห็นได้ - ว่าเป็นการอนุรักษ์พลังงานและภาพที่แสดงนั้นตรงกับที่สร้างด้วย Mitsuba renderer พารามิเตอร์) ตอนนี้ฉันกำลังใช้การสนับสนุนคำศัพท์เฉพาะของรุ่น microfacet Cook-Torrance ดั้งเดิมเพื่อแสดงพื้นผิวโลหะบางอย่าง อย่างไรก็ตามดูเหมือนว่า BRDF นี้จะสะท้อนพลังงานมากกว่าที่ได้รับ ดูภาพตัวอย่างด้านล่าง: ภาพด้านบน: ภาพอ้างอิงมิตซูบะ (สันนิษฐานว่าถูกต้อง) ภาพ: การติดตามเส้นทางด้วยการสุ่มตัวอย่างแสงโดยตรงการสุ่มตัวอย่างซีกโลกที่สำคัญความยาวเส้นทางสูงสุด = 5, 32 เอสพีพีที่จัดแบ่งชั้นกรองกล่องพื้นผิวขรุขระ = 0.2, RGB ภาพด้านบน: ภาพที่แสดงจริง: กำลังดุร้ายไร้เดียงสาการติดตามเส้นทาง, การสุ่มตัวอย่างซีกโลกสม่ำเสมอ, ความยาวพา ธ สูงสุด = 5, 4096 stratified spp, …

3
รูเล็ตรัสเซียเป็นคำตอบจริงๆหรือไม่?
ฉันได้เห็นแล้วว่าในการติดตั้ง Path Tracing การใช้แนวทางที่เรียกว่า Russian Roulette นั้นใช้ในการกำจัดเส้นทางบางส่วนและแบ่งปันผลงานของพวกเขาในเส้นทางอื่น ๆ ฉันเข้าใจว่าแทนที่จะติดตามเส้นทางจนกว่ามันจะลดลงต่ำกว่าค่าการสนับสนุนที่กำหนดไว้และจากนั้นให้ทิ้งการใช้เกณฑ์ที่แตกต่างกันและเส้นทางที่การบริจาคต่ำกว่าเกณฑ์นั้นจะถูกยกเลิกด้วยความน่าจะเป็นเพียงเล็กน้อยเท่านั้น เส้นทางอื่นมีส่วนร่วมของพวกเขาเพิ่มขึ้นตามจำนวนที่สอดคล้องกับการแบ่งปันพลังงานที่หายไปจากเส้นทางที่ถูกยกเลิก ฉันยังไม่ชัดเจนว่าจะเป็นการแก้ไขอคติที่ได้รับการแนะนำโดยเทคนิคหรือไม่หรือจำเป็นต้องใช้เทคนิคทั้งหมดเพื่อหลีกเลี่ยงอคติ รูเล็ตรัสเซียให้ผลที่ไม่เอนเอียงหรือไม่? รูเล็ตรัสเซียจำเป็นสำหรับผลที่เป็นกลางหรือไม่? นั่นคือจะใช้ขีด จำกัด เล็ก ๆ และยกเลิกเส้นทางทันทีที่มันลดลงต่ำกว่าขีด จำกัด นั้นจะให้ผลลัพธ์ที่เอนเอียงหรือมีอคติน้อยลงหรือไม่ เมื่อพิจารณาจากตัวอย่างจำนวนมากโดยพลการทั้งสองจะเข้าหากันบนภาพผลลัพธ์ที่เป็นกลางหรือไม่? ฉันกำลังมองหาที่จะเข้าใจเหตุผลพื้นฐานสำหรับการใช้วิธีรูเล็ตรัสเซีย ความเร็วหรือคุณภาพแตกต่างกันอย่างมีนัยสำคัญหรือไม่? ฉันเข้าใจว่าพลังงานถูกกระจายไปในรังสีอื่นเพื่อรักษาพลังงานทั้งหมด อย่างไรก็ตามการแจกจ่ายนี้ยังไม่สามารถทำได้ถ้ารังสีนั้นสิ้นสุดลงเมื่อลดลงต่ำกว่าขีด จำกัด คงที่แทนที่จะมีช่วงชีวิตที่กำหนดแบบสุ่มหลังจากถึงขีด จำกัด นั้นหรือไม่? ในทางกลับกันถ้าพลังงานที่จะสูญเสียไปโดยการยุติรังสีโดยไม่ต้องกระจายพลังงานนั้นก็จะหายไปในที่สุด (เช่นเดียวกับรังสีที่มันถูกแจกจ่ายไปก็ถูกยกเลิกด้วย) ในที่สุดสิ่งนี้จะปรับปรุงสถานการณ์ได้อย่างไร

1
Anti-aliasing / Filtering ในการติดตามเรย์
ในการติดตามรังสี / การติดตามเส้นทางหนึ่งในวิธีที่ง่ายที่สุดในการต่อต้านนามแฝงของภาพคือการแทนที่ค่าพิกเซลและเฉลี่ยผลลัพธ์ IE แทนที่จะถ่ายภาพตัวอย่างทุกชิ้นผ่านจุดศูนย์กลางของพิกเซลคุณชดเชยตัวอย่างด้วยจำนวนเงินหนึ่ง ในการค้นหาทั่วอินเทอร์เน็ตฉันได้พบสองวิธีที่แตกต่างกันในการทำสิ่งนี้: สร้างตัวอย่างอย่างไรก็ตามคุณต้องการและชั่งน้ำหนักผลลัพธ์ด้วยตัวกรอง ตัวอย่างหนึ่งคือPBRT สร้างตัวอย่างที่มีการแจกแจงเท่ากับรูปร่างของตัวกรอง สองตัวอย่างคือขนาดเล็กและทังสเตนเรนเดอร์ของBenedikt Bitterli สร้างและชั่งน้ำหนัก กระบวนการพื้นฐานคือ: สร้างตัวอย่างอย่างไรก็ตามคุณต้องการ (ลำดับแบบสุ่มแบ่งชั้นความคลาดเคลื่อนต่ำ ฯลฯ ) ชดเชยเรย์ของกล้องโดยใช้สองตัวอย่าง (x และ y) แสดงภาพด้วยรังสี คำนวณน้ำหนักโดยใช้ฟังก์ชั่นตัวกรองและระยะห่างของตัวอย่างโดยอ้างอิงจากจุดศูนย์กลางพิกเซล ตัวอย่างเช่น Box Filter, Tent Filter, Gaussian Filter, ฯลฯ ) ใช้น้ำหนักกับสีจากการเรนเดอร์ สร้างเป็นรูปร่างของตัวกรอง หลักฐานพื้นฐานคือการใช้การสุ่มตัวอย่างการแปลงผกผันเพื่อสร้างตัวอย่างที่กระจายตามรูปร่างของตัวกรอง ตัวอย่างเช่นฮิสโตแกรมของตัวอย่างที่กระจายในรูปร่างของเกาส์เซียนจะเป็น: สิ่งนี้สามารถทำได้อย่างแน่นอนหรือโดยการ binning ฟังก์ชั่นเป็น pdf / cdf แยก smallptใช้ cdf ผกผันที่แน่นอนของตัวกรองเต็นท์ ตัวอย่างของวิธีการ binning สามารถพบได้ที่นี่ คำถาม …

1
การเลือกการสะท้อนหรือการหักเหในการติดตามเส้นทาง
ฉันพยายามที่จะใช้การหักเหและการส่งสัญญาณในเส้นทางของฉันและฉันไม่แน่ใจเกี่ยวกับวิธีการใช้ ครั้งแรกพื้นหลังบางส่วน: เมื่อแสงกระทบกับพื้นผิวส่วนหนึ่งของแสงจะสะท้อนกลับและส่วนหนึ่งจะหักเห: จำนวนเท่าใดแสงสะท้อนและการหักเหถูกกำหนดโดยFresnel Equations ในการติดตามเรย์แบบเรียกซ้ำการใช้งานง่าย ๆ คือการถ่ายภาพรังสีเพื่อการสะท้อนและรังสีสำหรับการหักเหของแสง RTLo=Fresnel()=1−R=R⋅Li,reflection+T⋅Li,refractionR=Fresnel()T=1−RLo=R⋅Li,reflection+T⋅Li,refraction\begin{align*} R &= Fresnel()\\ T &= 1 - R\\ L_{\text{o}} &= R \cdot L_{\text{i,reflection}} + T \cdot L_{\text{i,refraction}} \end{align*} อย่างไรก็ตามในการติดตามเส้นทางเราเลือกเส้นทางเดียวเท่านั้น นี่คือคำถามของฉัน: ฉันจะเลือกว่าจะสะท้อนหรือหักเหในทางที่ไม่ลำเอียงได้อย่างไร การเดาครั้งแรกของฉันคือการสุ่มเลือกตาม Fresnel aka: float p = randf(); float fresnel = Fresnel(); if (p <= fresnel) { // Reflect } else …

3
การสุ่มตัวอย่างความสำคัญของแผนที่สิ่งแวดล้อม
อะไรคือวิธีที่ได้รับการพิสูจน์แล้วว่าดีที่สุดในปัจจุบันสำหรับการสุ่มตัวอย่างแมปสภาพแวดล้อม (EM) ในตัวติดตามเส้นทางแบบทิศทางเดียวที่ใช้ MIS และตัวเรนเดอร์ประเภทเดียวกันนี้ ฉันต้องการโซลูชันที่มีความซับซ้อนพอสมควรในขณะที่ใช้งานได้อย่างสมเหตุสมผลกับตัวอย่างที่ให้การสุ่มตัวอย่างที่สมบูรณ์แบบในราคาที่ซับซ้อนและยากต่อการใช้งาน สิ่งที่ฉันรู้จนถึงตอนนี้ มีวิธีง่ายๆในการสุ่มตัวอย่าง EM หนึ่งสามารถสุ่มตัวอย่างซีกโลกที่ต้องการในลักษณะน้ำหนักโคไซน์ซึ่งละเว้นทั้งรูปร่างของฟังก์ชัน BSDF และ EM ด้วยเหตุนี้มันไม่ทำงานกับ EM แบบไดนามิก: เพื่อปรับปรุงการสุ่มตัวอย่างให้อยู่ในระดับที่ใช้งานได้เราสามารถสุ่มตัวอย่างความส่องสว่างของ EM ได้ทั่วทั้งทรงกลม มันใช้งานได้ง่ายและผลลัพธ์ค่อนข้างดี อย่างไรก็ตามกลยุทธ์การสุ่มตัวอย่างยังคงเพิกเฉยต่อข้อมูลการมองเห็นในสมองและปัจจัยโคไซน์ (รวมถึง BSDF) ซึ่งส่งผลให้เกิดเสียงรบกวนสูงบนพื้นผิวซึ่งไม่ได้ถูกส่องโดยตรงโดยพื้นที่ที่มีความเข้มสูงของ EM: เอกสาร ฉันได้พบบทความสองสามเรื่องในหัวข้อนี้ แต่ยังไม่ได้อ่าน การอ่านและการใช้งานสิ่งเหล่านี้มีค่าในการติดตามเส้นทางแบบทิศทางเดียวหรือมีบางสิ่งที่ดีกว่านี้หรือไม่? โครงสร้างความสำคัญของการเก็บตัวอย่างแผนที่สิ่งแวดล้อม (2003) โดย Agarwal และคณะ การสุ่มตัวอย่างสำคัญนำพาได้ (2007) โดย Kartic Subr และ Jim Arvo พวกเขาอ้างว่าจะนำเสนอ“ ... อัลกอริทึมสำหรับการสุ่มตัวอย่างความสำคัญของแผนที่สิ่งแวดล้อมอย่างมีประสิทธิภาพซึ่งสร้างตัวอย่างในครึ่งวงกลมทรงกลมที่เป็นบวกซึ่งกำหนดโดยการวางแนวของพื้นผิวโดยพลการ “ กระดาษ“ ความสำคัญของการเก็บตัวอย่างทรงกลม Harmonics” ความเห็นเกี่ยวกับมัน:” …

1
การติดตามเส้นทางแบบก้าวหน้าด้วยการสุ่มตัวอย่างแสงอย่างชัดเจน
ฉันเข้าใจตรรกะที่อยู่เบื้องหลังการสุ่มตัวอย่างที่สำคัญสำหรับส่วน BRDF อย่างไรก็ตามเมื่อพูดถึงการสุ่มตัวอย่างแหล่งกำเนิดแสงอย่างชัดเจนทุกคนก็สับสน ตัวอย่างเช่นถ้าฉันมีแหล่งกำเนิดแสงจุดเดียวในฉากของฉันและถ้าฉันลองตัวอย่างโดยตรงในแต่ละเฟรมอย่างต่อเนื่องฉันควรนับเป็นอีกตัวอย่างหนึ่งสำหรับการรวม monte carlo หรือไม่ นั่นคือฉันนำตัวอย่างหนึ่งตัวอย่างจากการแจกแจงโคไซน์ - น้ำหนักและอื่น ๆ จากจุดแสง เป็นสองตัวอย่างทั้งหมดหรือเป็นเพียงหนึ่งตัวอย่าง นอกจากนี้ฉันควรแบ่งความกระจ่างใสที่มาจากตัวอย่างโดยตรงไปยังคำใด ๆ หรือไม่?

1
Path tracer - วัสดุหลายชั้นและการสุ่มตัวอย่างที่สำคัญ
ขณะนี้ฉันกำลังพยายามใช้ตัวติดตามเส้นทาง Monte Carlo ฉันได้ทำการวิจัยมาแล้วและดูเหมือนว่าวิธีการทั่วไปสำหรับวัสดุคือการใช้แบบจำลองแบบเลเยอร์ บางสิ่งเช่นนี้ เมื่อแสงกระทบกับพื้นผิว Fresnel จะบอกเราว่าแสงนั้นสะท้อนออกมาในชั้นแรกมากแค่ไหนและไปที่ชั้นที่สองเท่าใด ดังนั้นฉันจึงทำสิ่งที่คล้ายกัน แต่ง่ายกว่า: เพียงชั้นเดียวของ specular และชั้นหนึ่งของการกระจาย ยังไม่มีการส่งผ่าน จนถึงตอนนี้ฉันใช้brdf ที่มีน้ำหนักแบบโคไซน์เพื่อการกระจายของฉันและแบบจำลองขนาดเล็กของ Cook-Torrance สำหรับ specular ของฉัน ตอนนี้ส่วนที่ยากมา: ฉันควรทำอย่างไรเมื่อรังสีกระทบพื้นผิว? โดยปกติฉันจะเลือก brdf ที่สอดคล้องกับวัสดุพื้นผิวตัวอย่างทิศทางแสงตกกระทบประเมิน brdf และหารด้วยฟังก์ชันการแจกแจงความน่าจะเป็นที่ถูกต้อง แต่ที่นี่การตีพื้นผิวนั้นสอดคล้องกับวัสดุหลากหลาย วิธีที่ไร้เดียงสาในการจัดการสิ่งนี้คือการสุ่มตัวอย่างหนึ่งครั้งสำหรับการโจมตีแต่ละเลเยอร์ แต่สิ่งนี้ชัดเจนว่าเป็นแหล่งที่มาของการแสดงที่ยิ่งใหญ่ทำให้เส้นทางของฉันกลายเป็นต้นไม้ได้อย่างมีประสิทธิภาพ มีวิธีแก้ปัญหาที่ดีกว่านี้ไหม?

2
เหตุใดจึงต้องใช้ตัวกรองเต็นท์ในการติดตามเส้นทาง
99 สายของเส้นทางตามรอยซีSmallptวาทกรรมตาราง 2x2 พิกเซลย่อยสำหรับแต่ละพิกเซลก็ตั้งใจที่จะทำให้แล้วไม่กรองเต็นท์จะรวมพวกเขา มีการนำเสนอที่น่าสนใจอธิบายรหัสที่นี่และมันกล่าวถึงตัวกรองเต็นท์ แต่ไม่ได้อธิบายว่าทำไมมันถึงมี ทุกคนสามารถอธิบายได้หรือไม่ว่าทำไมตัวกรองเต็นท์จึงเป็นที่นิยมในกรณีนี้มากกว่าการเบลอกล่อง (เพียงเฉลี่ยค่าตัวอย่าง) มันจะมีคุณภาพสูงกว่าหรือไม่ที่จะไปกับสิ่งที่ดีกว่าตัวกรองเต็นท์เช่นการประมาณค่ากึ่งเฮอร์ไมต์ bicubic?

2
พลังงานทั้งหมดที่ปล่อยออกมาของแสงพื้นที่กระจาย
ฉันกำลังอ่านหนังสือการแสดงผลทางกายภาพ (Pharr, Humphreys) ในบทที่เกี่ยวกับไฟพวกเขาพูดคุยเกี่ยวกับการประมาณพลังงานรวมที่ปล่อยออกมาของแสงชนิดต่างๆ intensity * 4 * piยกตัวอย่างเช่นการรวมพลังไฟจุดคือ ที่นี่ 4pi แสดงถึงมุมที่เป็นของแข็งทั่วทั้งทรงกลม เรื่องนี้ทำให้รู้สึกถึงฉันเพราะความเข้ม * solid angle = power (หรือฟลักซ์การแผ่รังสีถ้าคุณต้องการ) คุณสามารถเห็นสิ่งนี้โดยหน่วยเช่นกัน ความเข้มคือ W / sr และมุมที่เป็นของแข็งคือ sr ดังนั้นW/sr * sr = Wและกำลังวัดเป็นวัตต์ มันตรวจสอบ DiffuseAreaLightแต่ผมไม่เข้าใจการคำนวณที่สอดคล้องกันสำหรับ emitted radiance * area * piจากความเข้าใจของฉันของหนังสือเล่มนี้พวกเขาคำนวณพลังงานทั้งหมดที่ปล่อยออกมาจากแสงกระจายเป็นพื้นที่ เนื่องจากหน่วยของความกระจ่างเป็นพื้นที่คูณ W / (sr * m ^ 2) ให้ W / …

1
การกระเจิงของปริมาตร Monte-Carlo แบบเต็ม
ฉันต้องการเพิ่มการกระจัดกระจายปริมาตร monte-carlo อย่างเต็มรูปแบบเพื่อติดตามเส้นทางของฉัน แต่ฉันมีเวลายากวิจัยวิธีการทำ ให้ฉันอธิบายสิ่งที่ฉันต้องการจะทำ: รังสีเข้าสู่วัสดุและเราใช้ BTDF จากนั้นหลังจากระยะทางหนึ่งเหตุการณ์การกระเจิงของปริมาตรเกิดขึ้นหลังจากนั้น (ในกรณี isotropic) รังสีจะกระจายไปในทิศทางใดก็ได้ใน รูปทรงกลม การทำซ้ำนี้จนกว่ารังสีจะออกจากวัสดุด้วย BTDF อื่น คำถามของฉันมีดังนี้: ฉันจะเลือกระยะห่างระหว่างเหตุการณ์กระจายได้อย่างไร สัญชาตญาณบอกฉันว่าควรจะมีการกระเจิงแบบ pdf ซึ่งให้โอกาสในการกระจายหลังจากระยะทางที่แน่นอน? สิ่งนี้จะถูกต้องหรือไม่ pdf จะเป็นฟังก์ชันเชิงเส้นสำหรับวัสดุ isotropic หรือไม่ ฟังก์ชั่นนี้มีชื่อหรืออะไรที่ฉันสามารถใช้กับ Google Beer-Lambert จะยังคงใช้งานระหว่างเหตุการณ์กระจายหรือไม่ ฉันจะไม่คิด เนื่องจาก Beer-Lambert เป็นการทำให้การคำนวณกระจัดกระจายง่ายขึ้น จากนั้นอีกครั้งบางทีเบียร์ - แลมเบิร์ตเป็นการคำนวณในระดับไมโครและการติดตามเส้นทางอยู่ในระดับมหภาค ปริมาตรที่เทียบเท่ากับ BSDF คืออะไร? ดูเหมือนว่าฉันสามารถใช้ฟังก์ชันเฟสเช่น Henyey-Greenstein เพื่อกำหนดทิศทางใหม่ แต่ฉันจะใช้เพื่อลดทอนอะไรบ้าง สุดท้ายวลี Google ดีกว่าสำหรับการกระเจิงเชิงปริมาตร Monte-Carlo คืออะไร? การค้นหาการกระจัดกระจายตามปริมาตรหรือ SSS …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.