ใน BRDF ที่มีพื้นฐานมาจากร่างกายเวกเตอร์ชนิดใดที่ควรใช้ในการคำนวณสัมประสิทธิ์ Fresnel?


11

การประมาณ Schlick ที่รู้จักกันดีของสัมประสิทธิ์ Fresnel ให้สมการ:

F=F0+(1−F0)(1−cos(θ))5

และเท่ากับผลคูณของจุดของเวกเตอร์ปกติผิวและมุมมองเวกเตอร์cos(θ)

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

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

การสังเกตนี้มีแนวโน้มที่จะทำให้ฉันคิดว่านี่เป็นที่ที่จะมา แต่ฉันไม่เห็นชัดเจนว่า Fresnel ของตัวแทนปกติเทียบเท่ากับการบูรณาการ Fresnel ของบรรทัดฐานที่เกิดขึ้นจริงทั้งหมดH

คำตอบ:


9

ในบทความของ Schlick ปี 1994 "โมเดลราคาไม่แพงสำหรับการแสดงผลทางกายภาพ"ซึ่งพวกเขาได้รับการประมาณสูตรคือ:

Fλ(u)=fλ+(1−fλ)(1−u)5

ที่ไหน

คำอธิบายของเวกเตอร์

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

V≡reflect(V′)
N≡H

สำหรับ BRDFs microfacet ฐานที่หมายถึงเปอร์เซ็นต์สถิติของภาวะปกติ microfacet ที่มุ่งเน้นไปทางHAka, เปอร์เซ็นต์ของแสงที่เข้ามาจะเด้งไปในทิศทางขาออกD(hr)H

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

BSDF=BRDF+BTDF
Lo(p,ωo)=Le(p,ωo) + ∫ΩBSDF∗Li(p,ωi)|cos⁡θi|dωi=Le(p,ωo) + ∫ΩBRDF∗Li, reflected(p,ωi)|cos⁡θi|dωi + ∫ΩBTDF∗Li, refracted(p,ωi)∗|cos⁡θi|dωi

ดังนั้นโดยสรุปเราใช้เพื่อให้ได้เปอร์เซ็นต์ของแสงที่จะเด้งไปในทิศทางขาออกและเพื่อหาเปอร์เซ็นต์ของแสงที่เหลือจะสะท้อน / หักเห ทั้งสองใช้เพราะนั่นคือการวางแนวพื้นผิวที่ช่วยให้การสะท้อนของกระจกระหว่างและDFHVV′


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

8

HN

คุณเขียน,

ฉันมีปัญหาในการดูว่าทำไมเรายังสามารถใช้สูตรนั้นใน BRDF ซึ่งควรจะประมาณอินทิกรัลของซีกโลกทั้งหมด

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

LVH=normalize(L+V)

HLVLHVH

LV

R=reflect(V,N)RNVN

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