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


11

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

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

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

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

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

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

คำตอบ:


9

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

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

ที่ไหน

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

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

Vreflect(V)
NH

สำหรับ 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) + ΩBSDFLi(p,ωi)|cosθi|dωi=Le(p,ωo) + ΩBRDFLi, reflected(p,ωi)|cosθi|dωi + ΩBTDFLi, 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.