然后把聚光燈到兩個(gè) locator 的距離連接到 plusminusaverage utility 節(jié)點(diǎn)上 . 并將此節(jié)點(diǎn)設(shè)為 subtract 方式 . 這是一個(gè)將聚光燈到兩個(gè) locator 的距離相減的工具 . 我們可以了解到兩個(gè)距離之差 ( 注意這里是遵循矢量加減法則 )
這個(gè)距離上的差值將決定兩個(gè) ramp texture 節(jié)點(diǎn)如何影響 dmap shadow 的 filter size 和 shadow color.

section6
為了確定聚光燈到某個(gè)點(diǎn)的距離 , 必須使用 light info utility 節(jié)點(diǎn) . 和 sampler info 節(jié)點(diǎn)相似 ,light info 節(jié)點(diǎn)與其他節(jié)點(diǎn)連接時(shí)能提供某個(gè)被渲染點(diǎn)的信息 .
light info 與 sampler info 不同之處在于需要將一個(gè)燈光信息連接到 light info 上 . 你會(huì)注意到在渲染網(wǎng)絡(luò)中 dmapsoftshadow 聚光燈的 worldmatrix[0] 屬性連接到了 light info 節(jié)點(diǎn)的 worldmatrix 屬性上 . 它告訴了 light info 從場(chǎng)景中的什么地方計(jì)算輸出屬性 sample distance.
sample distance 是從聚光燈中心到某個(gè)被渲染點(diǎn)的距離 .
注意 :light info 節(jié)點(diǎn)在確定 sample distance 時(shí)十分有用 .



section7 和 section5 的方法類似 , 我們用另一個(gè) plusminusaverage 節(jié)點(diǎn)來(lái)確定 sample distance 和聚光燈到 startshadow locator 的距離差 . 為方便起見(jiàn) , 這個(gè)差值命名為 sample point difference.

section8
上一步中得到的 sample point difference 是用來(lái)調(diào)整陰影的 . 如果這個(gè)值比較小 , 那么被渲染的點(diǎn)就離 startshadow locator 比較近 . 如果這個(gè)值比較大 , 那么被渲染的點(diǎn)就離 startshadow locator 比較遠(yuǎn) .
但是這個(gè) sample point difference 地值可以是從 0 到一個(gè)很大的數(shù) . 這個(gè)無(wú)限的范圍不太適合用于 ramp 節(jié)點(diǎn) .ramp 節(jié)點(diǎn)適合于 0-1 的范圍 . 為了解決這個(gè)問(wèn)題 , 需要使用一些數(shù)學(xué)手段來(lái)把這個(gè)距離差值轉(zhuǎn)化到 0-1 的范圍內(nèi) .
我們把 section5 中得到的聚光燈到 startshadow locator 和 endshadow locator 的距離之差稱為 total difference.
使用 multiply divid 節(jié)點(diǎn) , 計(jì)算出 sample point difference 與 total difference 的比值 . 即 sample point difference 在 total difference 所占百分比 . 這樣就把 sample point difference 轉(zhuǎn)換到了 0-1 范圍內(nèi) .
注意 : 對(duì)于位預(yù) startshadow locator 與聚光燈之間和 endshadow locator 之外的點(diǎn)的返回值將不在 0-1 之間 . 我們將在下一個(gè)節(jié)點(diǎn) clamp 中調(diào)整 . 因此 locator 的位置并不需要十分精確的位于陰影開(kāi)始和結(jié)束的地方 . 我們可以以后在做調(diào)整 .
新聞熱點(diǎn)
疑難解答
圖片精選