再谈微表面

Define the statistical framework

For measuring radiance on a surface:

figure 1

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)=Mprojectedarea(Pm)dpmMprojectedarea(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:

Figure 2

ω 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} sr1, 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 MM that contains all of the points p m ∈ M p_m\in M pmM 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’ pmMωm(pm)Ω

We have:

∫ M ’ d p m = ∫ Ω ’ D ( ω m ) d ω m \int_{M’}dp_m=\int_{\Omega’}D(\omega_m)d\omega_m Mdpm=Ω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))dpmMδω(ω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θo1m2=(ωoωg)area

3.可見面沿 ω o \omega_o ωo投影 :

figure 3

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))dpmMδω(ω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:

figure 4

注意使用相同的 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)=Mprojectedarea(pm)dpmMprojectedarea(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)dpmML(ω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θo1ML(ω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將其移出,如下圖:
figure 5

注意 G 1 G_1 G1只考慮了masking也就是下圖:

figure 6

現在由於移出了多重散射又要加上shadowing,於是將上式 G 1 G_1 G1替換為 G 2 G_2 G2.

注意:至此,我們已經徹底說清楚shadowing-mask函數的物理意義。masking是 ω o \omega_o ωo方向的遮蔽,而shadowing則是為了簡化多重散射。

微表面能量守恆(多重散射問題)

更加细致的微表面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值