Define the statistical framework
For measuring radiance on a surface:
( L o L_o Lo的單位是 W / s r / m 2 W/sr/m^2 W/sr/m2)
The total radiance L ( ω o , M ) L(\omega_o,M) L(ωo,M) of a given surf M in direction ω o \omega_o ωo is the integral of the radiances L ( ω o , P m ) L(\omega_o,P_m) L(ωo,Pm) from each patch with center point P m P_m Pm on the surface, and weighted by its projected area:
L ( ω o , M ) = ∫ M p r o j e c t e d − a r e a ( P m ) L ( ω o , P m ) d p m ∫ M p r o j e c t e d − a r e a ( P m ) d p m L(\omega_o,M)=\frac{\int_M projected-area(P_m)L(\omega_o,P_m)dp_m}{\int_M projected-area(P_m)dp_m} L(ωo,M)=∫Mprojected−area(Pm)dpm∫Mprojected−area(Pm)L(ωo,Pm)dpm
Note the denominator is a normalization coefficient and give the entrie radiance units —— area units in the denominator.
Consider a region of a surface called 「geometric surface」 G G G, whose area is 1 m 2 1m^2 1m2(by convention).
The micro-facet model assumes that the true surface is offset from G G G in the form of a collection of micro-facts M, like follows:
ω m ( p m ) \omega_m(p_m) ωm(pm) is the normal vector on p m p_m pm and is a function.
For writing the equation as a statistical one rather than spatial so that we can study it more convenient, we introduce the distribution of normals:
D
(
ω
)
=
∫
M
δ
(
ω
m
(
p
m
)
)
d
p
m
D(\omega)=\int_M \delta(\omega_m(p_m))dp_m
D(ω)=∫Mδ(ωm(pm))dpm
here only pick the normals along with ω m \omega_m ωm. And note that there may be so many’s normals along with this direction.
The units of the δ ω \delta_{\omega} δω are s r − 1 sr^{-1} sr−1, so the units of D ( ω ) D(\omega) D(ω) is m 2 / s r m^2/sr m2/sr.[note: the integral domain decides the units of the integral result.]
(Consider to pack G G G to a point) for the subset M ’ ⊂ M M’\subset M M’⊂M that contains all of the points p m ∈ M p_m\in M pm∈M where the normal ω m ( p m ) \omega_m(p_m) ωm(pm) is an element of Ω ’ \Omega’ Ω’ such that:
p m ∈ M ’ ↔ ω m ( p m ) ∈ Ω ’ p_m\in M’ \leftrightarrow \omega_m(p_m)\in \Omega’ pm∈M’↔ωm(pm)∈Ω’
We have:
∫ M ’ d p m = ∫ Ω ’ D ( ω m ) d ω m \int_{M’}dp_m=\int_{\Omega’}D(\omega_m)d\omega_m ∫M’dpm=∫Ω’D(ωm)dωm
此處 D ( ω ) D(\omega) D(ω)代表對所有具 ω \omega ω方向法線的 p m p_m pm的發現求和,可以想做將 G G G壓縮為一點, D ( ω ) D(\omega) D(ω)就是方向上的法線強度, D ( ω ) = ∫ M δ ω ( ω m ( p m ) ) d p m D(\omega)=\int_{M}\delta_{\omega}(\omega_m(p_m))dp_m D(ω)=∫Mδω(ωm(pm))dpm將強度與空間點聯繫了起來。
對於每一個集合的
ω
\omega
ω都有一個集合的
p
p
p, 將
p
m
p_m
pm積分恰好就對應於對
D
(
ω
)
D(\omega)
D(ω)作對應立體角上的積分。
於是這樣我們就成功地將M的面積和一個統計量
D
(
ω
m
)
D(\omega_m)
D(ωm)聯繫了起來:
S
M
=
∫
M
d
p
m
=
∫
Ω
D
(
ω
m
)
d
ω
m
S_M=\int_M dp_m = \int_{\Omega}D(\omega_m)d\omega_m
SM=∫Mdpm=∫ΩD(ωm)dωm
又有 ∫ M f ( ω m ( p m ) ) d p m = ∫ Ω f ( ω m ) D ( ω m ) d ω m \int_M f(\omega_m(p_m))dp_m=\int_{\Omega}f(\omega_m)D(\omega_m)d\omega_m ∫Mf(ωm(pm))dpm=∫Ωf(ωm)D(ωm)dωm
注意:同一個 ω m \omega_m ωm可能有多個 p m p_m pm對應,故左邊將有多個相同的 f ( ω m ) f(\omega_m) f(ωm)用於求和,而右邊將多次變成了一個系數 D ( ω m ) D(\omega_m) D(ωm)直接乘上去。
下列公式可以把一個spatial函數變為一個statistical函數:
g ( ω ) = ∫ M δ ω ( ω m ( p m ) ) g ( p m ) d p m ∫ M δ ω ( ω m ( p m ) ) d p m g(\omega)=\frac{\int_M \delta_{\omega}(\omega_m(p_m))g(p_m)dp_m}{\int_M \delta_{\omega}(\omega_m(p_m))dp_m} g(ω)=∫Mδω(ωm(pm))dpm∫Mδω(ωm(pm))g(pm)dpm
同時可以積分:
∫ M g ( p m ) d p m = ∫ Ω g ( ω m ) D ( ω m ) d ω m \int_M g(p_m)dp_m=\int_{\Omega}g(\omega_m)D(\omega_m)d\omega_m ∫Mg(pm)dpm=∫Ωg(ωm)D(ωm)dωm
Recall that:
D ( ω ) = ∫ M δ ω ( ω m ( p m ) ) d p m D(\omega)=\int_M\delta_{\omega}(\omega_m(p_m))dp_m D(ω)=∫Mδω(ωm(pm))dpm
1.沿幾何法線 ω g \omega_g ωg投影:
∫ Ω ( ω m ⋅ ω g ) D ( ω m ) d ω m = ∫ M ( ω m ( p m ) ⋅ ω g ) d p m = ∫ G d p g = 1 m 2 \int_{\Omega}(\omega_m\cdot \omega_g)D(\omega_m)d\omega_m=\int_M(\omega_m(p_m)\cdot \omega_g)dp_m=\int_Gdp_g=1m^2 ∫Ω(ωm⋅ωg)D(ωm)dωm=∫M(ωm(pm)⋅ωg)dpm=∫Gdpg=1m2
2.沿 ω o \omega_o ωo投影 :
cos θ o ⋅ 1 m 2 = ( ω o ⋅ ω g ) ⋅ a r e a \cos\theta_o\cdot 1m^2=(\omega_o\cdot \omega_g)\cdot area cosθo⋅1m2=(ωo⋅ωg)⋅area
3.可見面沿 ω o \omega_o ωo投影 :
Given a spatial masking function:
G
1
(
ω
o
,
p
m
)
=
0...1.
p
m
G_1(\omega_o,p_m)=0...1.p_m
G1(ωo,pm)=0...1.pmmasked between visible.
S p = ∫ M G 1 ( ω o , p m ) < ω o , ω m ( p m ) > d p m S_p=\int_M G_1(\omega_o,p_m)<\omega_o,\omega_m(p_m)>dp_m Sp=∫MG1(ωo,pm)<ωo,ωm(pm)>dpm
Change G 1 G_1 G1 to statistical:
G 1 ( ω o , ω ) = ∫ M δ ω ( ω m ( p m ) ) G 1 ( ω o , p m ) d p m ∫ M δ ω ( ω m ( p m ) ) d p m G_1(\omega_o,\omega)=\frac{\int_M \delta_{\omega}(\omega_m(p_m))G_1(\omega_o,p_m)dp_m}{\int_M\delta_{\omega}(\omega_m(p_m))dp_m} G1(ωo,ω)=∫Mδω(ωm(pm))dpm∫Mδω(ωm(pm))G1(ωo,pm)dpm
所以有:
S p = ∫ Ω G 1 ( ω o , ω m ) < ω o , ω m > D ( ω m ) d ω m S_p=\int_{\Omega}G_1(\omega_o,\omega_m)<\omega_o,\omega_m>D(\omega_m)d\omega_m Sp=∫ΩG1(ωo,ωm)<ωo,ωm>D(ωm)dωm
很顯然 S p = cos θ o S_p=\cos\theta_o Sp=cosθo
所以有:
cos θ o = ∫ Ω G 1 ( ω o , ω m ) < ω o , ω m > D ( ω m ) d ω m \cos\theta_o=\int_{\Omega}G_1(\omega_o,\omega_m)<\omega_o,\omega_m>D(\omega_m)d\omega_m cosθo=∫ΩG1(ωo,ωm)<ωo,ωm>D(ωm)dωm
根據這個方程如果給出 D D D的profile就能解出對應的 G 1 G_1 G1.
後面將會分別討論Smith和V-cavity profiles:
如下圖所示的profiles:
注意使用相同的 D ( ω m ) D(\omega_m) D(ωm),不同的profiles可以解出不同的 G 1 G_1 G1.
再次考慮radiance計算方程 :
L ( ω o , M ) = ∫ M p r o j e c t e d − a r e a ( p m ) L ( ω o , p m ) d p m ∫ M p r o j e c t e d − a r e a ( p m ) d p m L(\omega_o,M)=\frac{\int_{M}projected-area(p_m)L(\omega_o,p_m)dp_m}{\int_M projected-area(p_m)dp_m} L(ωo,M)=∫Mprojected−area(pm)dpm∫Mprojected−area(pm)L(ωo,pm)dpm
帶入projected area,可以得到:
L ( ω o , M ) = ∫ M L ( ω o , p m ) G 1 ( ω o , ω m ) < ω o , ω m > D ( ω m ) d p m ∫ M G 1 ( ω o , ω m ) < ω o , ω m > D ( ω m ) d p m L(\omega_o,M)=\frac{\int_{M}L(\omega_o,p_m)G_1(\omega_o,\omega_m)<\omega_o,\omega_m>D(\omega_m)dp_m}{\int_M G_1(\omega_o,\omega_m)<\omega_o,\omega_m>D(\omega_m)dp_m} L(ωo,M)=∫MG1(ωo,ωm)<ωo,ωm>D(ωm)dpm∫ML(ωo,pm)G1(ωo,ωm)<ωo,ωm>D(ωm)dpm
化簡可得:
L ( ω o , M ) = 1 cos θ o ∫ M L ( ω o , p m ) G 1 ( ω o , ω m ) < ω o , ω m > D ( ω m ) d p m L(\omega_o,M)=\frac{1}{\cos\theta_o}\int_{M}L(\omega_o,p_m)G_1(\omega_o,\omega_m)<\omega_o,\omega_m>D(\omega_m)dp_m L(ωo,M)=cosθo1∫ML(ωo,pm)G1(ωo,ωm)<ωo,ωm>D(ωm)dpm
下面求解 L ( ω o , ω m ) L(\omega_o,\omega_m) L(ωo,ωm):
L
(
ω
o
,
ω
m
)
=
∫
Ω
i
d
L
(
ω
o
,
ω
m
)
d
ω
i
d
ω
i
L(\omega_o,\omega_m)=\int_{\Omega_i}\frac{dL(\omega_o,\omega_m)}{d\omega_i}d\omega_i
L(ωo,ωm)=∫ΩidωidL(ωo,ωm)dωi
=
∫
Ω
i
ρ
M
(
ω
o
,
ω
i
,
ω
m
)
<
ω
i
,
ω
m
>
L
(
ω
i
)
d
ω
i
=\int_{\Omega_i}\rho_M(\omega_o,\omega_i,\omega_m)<\omega_i,\omega_m>L(\omega_i)d\omega_i
=∫ΩiρM(ωo,ωi,ωm)<ωi,ωm>L(ωi)dωi
其中:
ρ M ( ω o , ω i , ω m ) = d L ( ω o , ω m ) < ω i , ω m > L ( ω i ) d ω i . . . . . . ( 1 ) \rho_M(\omega_o,\omega_i,\omega_m)=\frac{dL(\omega_o,\omega_m)}{<\omega_i,\omega_m>L(\omega_i)d\omega_i}......(1) ρM(ωo,ωi,ωm)=<ωi,ωm>L(ωi)dωidL(ωo,ωm)......(1)
叫做:micro-BRDF
取:
D ω o ( ω m ) = G 1 ( ω o , ω m ) < ω o , ω m > D ( ω m ) cos θ o D_{\omega_o}(\omega_m)=\frac{G_1(\omega_o,\omega_m)<\omega_o,\omega_m>D(\omega_m)}{\cos\theta_o} Dωo(ωm)=cosθoG1(ωo,ωm)<ωo,ωm>D(ωm)
這個叫做the distribution of visible normals.
有: L ( ω o , M ) = ∫ Ω L ( ω o , ω m ) D ω o ( ω m ) d ω m L(\omega_o,M)=\int_{\Omega}L(\omega_o,\omega_m)D_{\omega_o}(\omega_m)d\omega_m L(ωo,M)=∫ΩL(ωo,ωm)Dωo(ωm)dωm
將上式兩邊對 ω o \omega_o ωo取微分有:
d L ( ω o , M ) = ∫ Ω d L ( ω o , ω m ) D ω o ( ω m ) d ω m dL(\omega_o,M)=\int_{\Omega}dL(\omega_o,\omega_m)D_{\omega_o}(\omega_m)d\omega_m dL(ωo,M)=∫ΩdL(ωo,ωm)Dωo(ωm)dωm
代入前面式(1)得到:
d L ( ω o , M ) = L ( ω i ) d ω i ∫ Ω ρ M ( ω o , ω i , ω m ) < ω i , ω m > D ω o ( ω m ) d ω m dL(\omega_o,M)=L(\omega_i)d\omega_i\int_{\Omega}\rho_{M}(\omega_o,\omega_i,\omega_m)<\omega_i,\omega_m>D_{\omega_o}(\omega_m)d\omega_m dL(ωo,M)=L(ωi)dωi∫ΩρM(ωo,ωi,ωm)<ωi,ωm>Dωo(ωm)dωm
又根據BRDF的定義有:
d
L
(
ω
o
,
M
)
=
ρ
(
ω
o
,
ω
i
)
cos
θ
i
L
(
ω
i
)
d
ω
i
dL(\omega_o,M)=\rho(\omega_o,\omega_i)\cos\theta_iL(\omega_i)d\omega_i
dL(ωo,M)=ρ(ωo,ωi)cosθiL(ωi)dωi
ρ
(
ω
o
,
ω
i
)
=
1
cos
θ
i
∫
Ω
ρ
M
(
ω
o
,
ω
i
,
ω
m
)
<
ω
i
,
ω
m
>
D
ω
o
(
ω
m
)
d
ω
m
\rho(\omega_o,\omega_i)=\frac{1}{\cos\theta_i}\int_{\Omega}\rho_{M}(\omega_o,\omega_i,\omega_m)<\omega_i,\omega_m>D_{\omega_o}(\omega_m)d\omega_m
ρ(ωo,ωi)=cosθi1∫ΩρM(ωo,ωi,ωm)<ωi,ωm>Dωo(ωm)dωm
將 D ω o ( ω m ) D_{\omega_o}(\omega_m) Dωo(ωm)展開得到微表面BRDF構造的最終表達式:
ρ ( ω o , ω i ) = ∫ Ω ρ M ( ω o , ω i , ω m ) < ω o , ω m > < ω i , ω m > G 1 ( ω o , ω m ) D ( ω m ) d ω m ∣ ω g ⋅ ω o ∣ ∣ ω g ⋅ ω i ∣ \rho(\omega_o,\omega_i)=\frac{\int_{\Omega}\rho_M(\omega_o,\omega_i,\omega_m)<\omega_o,\omega_m><\omega_i,\omega_m>G_1(\omega_o,\omega_m)D(\omega_m)d\omega_m}{|\omega_g\cdot \omega_o||\omega_g\cdot \omega_i|} ρ(ωo,ωi)=∣ωg⋅ωo∣∣ωg⋅ωi∣∫ΩρM(ωo,ωi,ωm)<ωo,ωm><ωi,ωm>G1(ωo,ωm)D(ωm)dωm
注意:一個完整的BRDF應該考慮在微表面上的多重散射 ,但此處並不考慮而是直接使用shadowing將其移出,如下圖:
注意 G 1 G_1 G1只考慮了masking也就是下圖:
現在由於移出了多重散射又要加上shadowing,於是將上式 G 1 G_1 G1替換為 G 2 G_2 G2.
注意:至此,我們已經徹底說清楚shadowing-mask函數的物理意義。masking是 ω o \omega_o ωo方向的遮蔽,而shadowing則是為了簡化多重散射。