Dalam BRDF berbasis fisik, vektor apa yang harus digunakan untuk menghitung koefisien Fresnel?

11

Perkiraan Schlick yang terkenal dari koefisien Fresnel memberikan persamaan:

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

Dan sama dengan produk titik dari vektor normal permukaan dan vektor tampilan.cos(θ)

Hal ini masih belum jelas bagi saya meskipun jika kita harus menggunakan permukaan sebenarnya yang normal atau setengah vektor . Yang mana yang harus digunakan dalam BRDF berbasis fisik dan mengapa?HNH

Selain itu, sejauh yang saya mengerti koefisien Fresnel memberikan probabilitas sinar yang diberikan untuk tercermin atau dibiaskan. Jadi saya kesulitan melihat mengapa kita masih bisa menggunakan formula itu dalam BRDF, yang seharusnya mendekati integral di seluruh belahan bumi.

Pengamatan ini cenderung membuat saya berpikir di sinilah akan datang, tetapi tidak jelas bagi saya bahwa Fresnel dari representatif normal setara dengan mengintegrasikan Fresnel dari semua normals yang sebenarnya.H

Julien Guertault
sumber

Jawaban:

8

Dalam makalah Schlick tahun 1994, "Sebuah Model yang Murah untuk Rendering Berbasis Fisik" , di mana mereka memperoleh perkiraan, rumusnya adalah:

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

Dimana

Deskripsi vektor

Jadi, untuk menjawab pertanyaan pertama Anda, mengacu pada sudut antara vektor tampilan dan setengah vektor. Pertimbangkan sejenak bahwa permukaannya adalah cermin yang sempurna. Jadi: Dalam hal ini: θ

Vreflect(V)
NH

Untuk BRDFs microfacet-dasar, jangka mengacu pada persentase statistik normals microfacet yang berorientasi pada . Aka, berapa persen dari cahaya yang masuk akan memantul ke arah keluar.D(hr)H

Adapun mengapa kita menggunakan Fresnel dalam BRDF, itu ada hubungannya dengan fakta bahwa BRDF dengan sendirinya hanya sebagian dari BSDF penuh. A BRDF melemahkan bagian cahaya yang dipantulkan dan BTDF melemahkan bagian yang dibiaskan. Kami menggunakan Fresnel untuk menghitung jumlah cahaya yang dipantulkan vs yang dibiaskan, sehingga kami dapat melemahkannya dengan baik dengan BRDF dan 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

Jadi, secara ringkas, kami menggunakan untuk mendapatkan persentase cahaya yang akan memantul ke arah keluar, dan , untuk mengetahui berapa persentase cahaya yang tersisa akan memantulkan / membiaskan. Keduanya menggunakan , karena itu adalah orientasi permukaan yang memungkinkan refleksi cermin antara danDFHVV

RichieSams
sumber
Oh saya benar-benar merindukan bahwa ini sudah merupakan hasil di koran. Itu sudah jelas. :) Saya harus membaca ulang untuk mendapatkan pemahaman yang lebih baik tentang bagaimana cocoknya di dalam BRDF.
Julien Guertault
7

Koefisien Fresnel harus dievaluasi menggunakan , tidak .NHN

Kau menulis,

Saya kesulitan melihat mengapa kita masih bisa menggunakan formula itu di BRDF, yang seharusnya mendekati integral di seluruh belahan bumi.

Ini bukan. BRDF itu sendiri tidak mendekati integral di seluruh belahan bumi. Persamaan render melakukan itu: Anda mengintegrasikan semua arah cahaya yang masuk, tetapi setiap kali BRDF di dalam integral dievaluasi, itu untuk satu pilihan spesifik arah sinar yang masuk dan keluar.

LVH=normalize(L+V)

HLVLHVH

LV

R=reflect(V,N)RNVN

Nathan Reed
sumber