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

2
ความแตกต่างแบบกระจายและแบบ specular-based
วิธีการแรเงาแบบคลาสสิคในคอมพิวเตอร์กราฟิกแบบเรียลไทม์คือการรวมกันของคำศัพท์การกระจาย (Lambertian) และคำที่มีความหมายซึ่งอาจเป็นไปได้ว่า Phong หรือ Blinn-Phong ขณะนี้มีแนวโน้มไปสู่การเรนเดอร์เชิงกายภาพดังนั้นโมเดลวัสดุในเครื่องยนต์เช่นFrostbite , Unreal EngineหรือUnity 3D BRDF เหล่านี้มีการเปลี่ยนแปลง ตัวอย่างเช่น (อันที่เป็นสากลในตอนนั้น) Unreal Engine ล่าสุดยังคงใช้การแพร่กระจายของ Lambertian แต่เมื่อใช้ร่วมกับรูปแบบ microfacet ของ Cook-Torrance สำหรับการสะท้อนแบบ specular (โดยเฉพาะการใช้ GGX / Trowbridge-Reitz ) นอกจากนี้ยังมีการใช้ค่า 'Metalness' เพื่อแยกความแตกต่างระหว่างตัวนำและอิเล็กทริก สำหรับ dielectrics การกระจายจะใช้สีโดยใช้อัลเบโดของวัสดุในขณะที่ specular ไม่มีสีเสมอ สำหรับโลหะนั้นไม่ได้ใช้การแพร่กระจายและเทอม specular จะถูกคูณกับอัลเบโดของวัสดุ เกี่ยวกับวัสดุทางกายภาพในโลกแห่งความเป็นจริงการแบ่งแยกอย่างเข้มงวดระหว่างการแพร่กระจายและการแพร่กระจายนั้นมีอยู่หรือไม่และหากเป็นเช่นนั้นมันมาจากที่ไหน? ทำไมสีหนึ่งในขณะที่สีอื่น ๆ ไม่? ทำไมคอนดักเตอร์ถึงประพฤติแตกต่างกัน?

2
การสุ่มตัวอย่างสำคัญคืออะไร
การสุ่มตัวอย่างที่สำคัญคืออะไร? ทุกบทความที่ฉันอ่านเกี่ยวกับมันระบุว่า 'PDF' นั่นคืออะไร จากสิ่งที่ฉันรวบรวมการสุ่มตัวอย่างที่สำคัญคือเทคนิคหนึ่งไปยังพื้นที่ตัวอย่างบนซีกโลกที่มีความสำคัญมากกว่าที่อื่น ๆ ดังนั้นในอุดมคติฉันควรสุ่มตัวอย่างแสงเข้าหาแหล่งกำเนิดแสงเพื่อลดเสียงรบกวนและเพิ่มความเร็ว นอกจากนี้ BRDF บางตัวที่มุมแทะเล็มมีความแตกต่างเล็กน้อยในการคำนวณดังนั้นใช้การสุ่มตัวอย่างที่สำคัญเพื่อหลีกเลี่ยงสิ่งที่ดี? ถ้าฉันต้องใช้การสุ่มตัวอย่างที่สำคัญสำหรับ Cook-Torrance BRDF ฉันจะทำสิ่งนี้ได้อย่างไร

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

2
วิธีการรวมคำศัพท์การกระจายและ specular อย่างถูกต้อง?
เท่าที่ฉันเข้าใจใน BRDF คำว่า Fresnel กำลังบอกเราถึงความน่าจะเป็นที่โฟตอนจะสะท้อนหรือหักเหเมื่อมันกระทบกับพื้นผิว โฟตอนที่สะท้อนออกมาจะมีผลกับเทอม specular ในขณะที่โฟตอนที่หักเหจะมีส่วนทำให้เกิดระยะกระจาย ดังนั้นเมื่อพิจารณาตามลักษณะทางกายภาพการมีส่วนร่วมของแสงกับสีของวัสดุฉันรู้สึกอยากจะเขียนเพียงแค่: // Assuming for example: // diffuse = dot(L, N); // specular = pow(dot(H, N), alpha) * (alpha + 2.0) / 8.0; // fresnel = f0 + (1.0 - f0) * pow(1.0 - dot(E, H), 5.0); color = lightIntensity * Lerp(diffuse * …

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 …

2
Fresnel reflectance ทองคำช่องสีแดงมากกว่า 1?
ฉันพยายามที่จะเข้าใจหลักการทางกายภาพบางอย่างที่อยู่เบื้องหลังแสงและการโต้ตอบกับวัตถุเมื่อเร็ว ๆ นี้ ในการพูดคุยเรื่องฟิสิกส์และคณิตศาสตร์เรื่องแรเงา Naty Hoffman อธิบายการสะท้อนของ Fresnel และกำหนดสีที่เป็นลักษณะเฉพาะของF 0ของวัสดุในการสะท้อนของ Fresnel ที่มุมของแสงที่ตกกระทบ 0 ° บนสไลด์ 65 ทองคำF 0ได้รับเป็น1.022, 0.782, 0.344 (เชิงเส้น) Hoffman เพิ่ม: ค่าช่องสีแดงมากกว่า 1 (อยู่นอกช่วง sRGB) ทั้งหมดนี้ไม่สมเหตุสมผลกับฉันมากเกินไป คุ้มค่ามากขึ้นกว่า 1 จะหมายถึงว่าในช่วงความยาวคลื่นที่เอื้อต่อการที่ช่องสีแดง, พลังงานมากขึ้นสะท้อนให้เห็นกว่าจะได้รับ สิ่งนี้เกิดขึ้นจริงและถ้าเป็นเช่นนั้นอย่างไรและทำไม? นอกจากนี้นี่คือเส้นโค้งการสะท้อนแสงจากWikipediaสำหรับวัสดุบางอย่างรวมถึงทองคำ (Au) ส่วนโค้งนั้นสูงสำหรับความยาวคลื่นสีแดงประมาณ 600nm แต่ดูเหมือนจะไม่เกิน 100%
13 physics  brdf 

1
วิธีการที่ยอมรับได้ของการเปลี่ยนความเงางามให้เป็นความหยาบและในทางกลับกันคืออะไร?
เครื่องมือสร้างภาพที่ทันสมัยส่วนใหญ่ใช้วัสดุที่มีคุณสมบัติทางกายภาพ เนื่องจากสิ่งนี้ไม่ได้เกิดขึ้นกับตัวเรนเดอร์บ่อยครั้งสินทรัพย์แบบดั้งเดิมมักไม่มีความหยาบ แต่เรากลับเห็นว่า "ความมัน" หรือ "พลังงานแบบ specular" เป็นพารามิเตอร์วัสดุทั่วไป ฉันเข้าใจว่าไม่มีการแปลงที่แน่ชัดระหว่างสองสิ่งนี้ แต่มีวิธีที่ใช้กฎง่ายๆ / โดยประมาณในการรับความหยาบสำหรับวัสดุที่รู้จักพลังพิเศษหรือความมันวาวหรือไม่?
12 specular  brdf  pbr 

1
การชดเชยการสูญเสียพลังงานในรุ่น BSDF ของไมโครฟอร์แมตแบบกระจาย
แบบจำลองพื้นผิวที่ใช้ไมโครฟิล์มแบบกระจัดกระจายเช่นTorrance-Sparrow BRDFดั้งเดิมหรือแบบจำลองที่ได้มาเช่นBSDF สำหรับพื้นผิวอิเล็กทริกแบบหยาบโดย Walter et al ละเลยการสะท้อนแสงระหว่าง microfacets ซึ่งส่งผลให้สูญเสียพลังงานทำให้เกิดความมืดโดยเฉพาะอย่างยิ่งเมื่อค่าความหยาบสูงขึ้น สามารถแสดงปัญหาได้อย่างง่ายดายโดยใช้การทดสอบเตาหลอม ภาพต่อไปนี้แสดงพฤติกรรมการใช้ไมโครฟิล์มนำไฟฟ้า BRDF ของฉันโดยใช้แบบจำลอง Smith และการแจกแจง GGX สำหรับพารามิเตอร์ความหยาบจาก 0.2 ถึง 1.0 (ค่าสัมประสิทธิ์ Fresnel ถูกตั้งค่าเป็น 1 ที่นี่เพื่อทำให้ปัญหาง่ายขึ้น): การทดสอบเตาเผาของอิเล็กทริกหยาบ (IoR 1.51) BSDF โดยใช้แบบจำลอง Smith และการกระจายไมโครฟิล์ม GGX สำหรับพารามิเตอร์ความหยาบตั้งแต่ 0.2 ถึง 1.0: Eric Heitz และคณะ มีเพียงแค่เมื่อเร็ว ๆ นี้นำเสนอรูปแบบหลายกระเจิงซึ่งจะช่วยแก้ปัญหาคล้ำโดยการแก้ปฏิสัมพันธ์แสงสมบูรณ์ แต่มีปัญหาประสิทธิภาพการทำงานเนื่องจากลักษณะสุ่มของกิจวัตรประจำวันการประเมินผลของมันเป็น metioned โดย Heitz ตัวเองอยู่ในฟอรั่มลักซ์เร็นเดอร์ มีวิธีการชดเชยที่เป็นที่รู้จักสำหรับการกู้คืนพลังงานที่สูญเสียไปของแบบจำลองการกระเจิงเดี่ยวหรือไม่? ไม่จำเป็นต้องถูกต้องตามร่างกาย …

2
ใน BRDF ที่มีพื้นฐานมาจากร่างกายเวกเตอร์ชนิดใดที่ควรใช้ในการคำนวณสัมประสิทธิ์ Fresnel?
การประมาณ Schlick ที่รู้จักกันดีของสัมประสิทธิ์ Fresnel ให้สมการ: F= F0+ ( 1 - F0) ( 1 - c o s ( θ ) )5F=F0+(1−F0)(1−cos(θ))5F=F_0+(1 - F_0)(1 - cos(\theta))^5 และเท่ากับผลคูณของจุดของเวกเตอร์ปกติผิวและมุมมองเวกเตอร์c o s ( θ )cos(θ)cos(\theta) มันยังไม่ชัดเจนสำหรับฉันแม้ว่าเราควรใช้พื้นผิวปกติหรือเวกเตอร์ครึ่งจริง ควรใช้อะไรใน BRDF ที่มีพื้นฐานทางร่างกายและทำไมHยังไม่มีข้อความNNHHH ยิ่งกว่านั้นเท่าที่ฉันเข้าใจค่าสัมประสิทธิ์ Fresnel ให้ความน่าจะเป็นของรังสีที่กำหนดเพื่อสะท้อนหรือหักเห ดังนั้นฉันจึงมีปัญหาในการดูว่าทำไมเรายังสามารถใช้สูตรนั้นใน BRDF ซึ่งควรจะประมาณค่าอินทิกรัลของซีกโลกทั้งหมด การสังเกตนี้มีแนวโน้มที่จะทำให้ฉันคิดว่านี่เป็นที่ที่จะมา แต่ฉันไม่เห็นชัดเจนว่า Fresnel ของตัวแทนปกติเทียบเท่ากับการบูรณาการ Fresnel ของบรรทัดฐานที่เกิดขึ้นจริงทั้งหมดHHH
11 brdf  pbr  integral  fresnel 

1
ทำไม BRDF ถึงไม่เป็นอัตราส่วนของความกระจ่างใส?
ฉันกำลังเรียนรู้เกี่ยวกับ BRDF และสงสัยว่าเหตุใด BRDF จึงถูกกำหนดให้เป็นอัตราส่วนของความกระจ่างใสที่ส่งออกไปยังทิศทางที่กำหนดและการฉายรังสีที่เข้ามาจากทิศทางอื่น เหตุใด BRDF จึงไม่ถูกกำหนดเป็นอัตราส่วนของความกระจ่าง
10 brdf 

1
เหตุผลของข้อสมมติฐานสำหรับฟังก์ชันการกระจายไมโครฟอสต์หรือไม่
แบบจำลองกระดาษไมโครไฟเบอร์สำหรับการหักเหผ่านพื้นผิวขรุขระ (ในหมู่อื่น ๆ ) ทำให้เรานึกถึงสมมติฐานต่อไปนี้เกี่ยวกับฟังก์ชั่นการกระจาย microfacet D: ความหนาแน่นของไมโครไฟเบอร์เป็นค่าบวก พื้นที่ microsurface ทั้งหมดอย่างน้อยใหญ่เท่ากับพื้นที่ของ macrosurface ที่เกี่ยวข้อง พื้นที่ฉาย (ลงนาม) ของ microsurface เหมือนกับพื้นที่ฉายของ macrosurface สำหรับทิศทางใด ๆ v ฉันสามารถดูได้ว่าทำไม 1) ความหนาแน่นของการกระจายเป็นค่าบวกและโดยสังหรณ์ใจเชื่อว่า 2) หมายความว่าพื้นที่ทั้งหมดของ microfacets ที่ลาดเอียงต้องไม่เล็กกว่าที่คาดไว้ อย่างไรก็ตามฉันไม่แน่ใจว่าเข้าใจเหตุผลสำหรับ 3) เงื่อนไขที่สามหมายความว่าอย่างไร

1
รูปแบบที่ถูกต้องของคำศัพท์เรขาคณิต GGX
ฉันกำลังพยายามนำ BRDF ของ microfacet ไปใช้ใน raytracer ของฉัน แต่ฉันพบปัญหาบางอย่าง เอกสารและบทความจำนวนมากที่ฉันได้อ่านให้นิยามคำเรขาคณิตบางส่วนเป็นฟังก์ชันของมุมมองและเวกเตอร์ครึ่งหนึ่ง: G1 (v, h) อย่างไรก็ตามเมื่อใช้งานนี้ฉันได้รับผลลัพธ์ดังต่อไปนี้: (แถวล่างเป็นฉนวนความหยาบ 1.0 - 0.0, แถวบนสุดเป็นโลหะที่มีความหยาบ 1.0 - 0.0) มีไฮไลท์แปลก ๆ อยู่รอบ ๆ ขอบและตัดรอบ ๆ nl == 0 ฉันไม่สามารถเข้าใจได้ว่ามันมาจากไหน ฉันใช้ Unity เป็นข้อมูลอ้างอิงในการตรวจสอบการแสดงผลของฉันดังนั้นฉันจึงตรวจสอบแหล่งที่มาของ shader เพื่อดูว่าพวกเขาใช้อะไรและจากสิ่งที่ฉันสามารถบอกได้ว่าเทอมเรขาคณิตของพวกเขานั้นไม่ได้ถูกพาราเมท ดังนั้นฉันจึงลองใช้รหัสเดียวกัน แต่ใช้กับพื้นผิวมาโครปกติแทนที่จะเป็นครึ่งเวคเตอร์และได้ผลลัพธ์ดังนี้ สำหรับดวงตาที่ไม่ผ่านการฝึกฝนของฉันสิ่งนี้ดูเหมือนจะใกล้เคียงกับผลลัพธ์ที่ต้องการ แต่ฉันมีความรู้สึกว่ามันไม่ถูกต้อง? บทความที่ฉันอ่านส่วนใหญ่ใช้เวกเตอร์ครึ่งตัว แต่ไม่ใช่ทั้งหมด มีเหตุผลสำหรับความแตกต่างนี้หรือไม่? ฉันใช้รหัสต่อไปนี้เป็นคำเรขาคณิตของฉัน: float RayTracer::GeometryGGX(const Vector3& v, const Vector3& …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.