? 迅雷亚洲第成色999久久网站,一本天堂v无码亚洲道
聯(lián)系我們

給我們留言

聯(lián)系我們

地址:福建省晉江市青陽(yáng)街道洪山路國(guó)際工業(yè)設(shè)計(jì)園納金網(wǎng)

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當(dāng)前位置:主頁(yè) > 3D教程 > 圖文教程

maya 分析衰減深度帖圖陰影

來源: 未知 | 責(zé)任編輯:曲終人散 | 發(fā)布時(shí)間: 2017-08-22 15:02 | 瀏覽量:
本節(jié)匯寶盆為大家?guī)淼氖牵?/span>maya 分析衰減深度帖圖陰影
maya 分析衰減深度帖圖陰影
我們可以用使用深度帖圖陰影來模擬柔和的光線追蹤 (raytracing) 的效果 .

衰減 (attenuated) 這個(gè)詞的含義是消減和柔化陰影 . 在以下的例子中 , 我們通過調(diào)整陰影的顏色來減弱陰影的亮度 . 我們這里所演示的技巧在某些場(chǎng)景中是十分有效的 . 他能極大的減少渲染時(shí)間 . 但是在某些場(chǎng)合慊故潛匭朧褂霉庀咦紛?. 例如當(dāng)光線通過使用了透明帖圖的物體或有顏色的透明表面時(shí) , 就要必須使用光線追蹤 .( 但即使是后面兩種情況有時(shí)也可以用深度帖圖模擬光線追蹤 . 可以參考我翻譯的另一篇教程。

下面兩圖是左邊用光線追蹤右邊是衰減深度帖圖渲染 . 效果差不多但是光線追蹤的渲染時(shí)間要多 2.6 倍 . 



section1

打開場(chǎng)景 attenuateddmapshadow.mb 這個(gè)場(chǎng)景包含一個(gè)椅子模型和一個(gè)加上了 attenuated dmap shadow 效果的聚光燈 , 其名稱為 dmapsoftshadow. 



section2 .

在 hypershade 窗口中的 light 選項(xiàng)卡下選擇 dmapsoftshadow, 并點(diǎn)擊 show upstream connections 按鈕 . 便可以看到這個(gè)聚光燈的網(wǎng)絡(luò)節(jié)點(diǎn) . 這個(gè)網(wǎng)絡(luò)是為了從最近點(diǎn)到最遠(yuǎn)點(diǎn)淡化陰影而設(shè)置的 . 它包含 3 個(gè) locators, 一個(gè)燈光信息節(jié)點(diǎn)以及一些能驅(qū)使兩個(gè) ramp textures 調(diào)整陰影的過濾尺寸和顏色屬性的數(shù)學(xué)節(jié)點(diǎn) . 

section3

locator 的作用是在空間里標(biāo)定位置 . 第一個(gè) locator 的位置就是聚光燈的位置 , 他和聚光燈之間有 constrained 的聯(lián)系 . 另外兩個(gè) locator 分別在陰影的開始和結(jié)束的位置 . 



section4

這 3 個(gè) locators 與 2 個(gè) distance between 節(jié)點(diǎn)連接 .distance between 節(jié)點(diǎn)是用來計(jì)算聚光燈和另外兩個(gè) locator 的距離的 .

distance between 節(jié)點(diǎn)輸出的是 3d 空間上兩點(diǎn)間的距離 . 是通過下面的公式計(jì)算的 .

(x1,y1,z1) 和 (x2,y2,z2) 分別是兩個(gè) locator 的坐標(biāo) .

注意 : 必須用 mel 命令來創(chuàng)建 distance between 節(jié)點(diǎn) , 輸入 createnode distancebetween; 命令 . 這個(gè)節(jié)點(diǎn)不會(huì)在 hypershade 出現(xiàn) . 你必須在 outliner 中用鼠標(biāo)中鍵把它拖到 hypershade 中去 . 

section5

然后把聚光燈到兩個(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 屬性連接到了 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)來確定 sample distance 和聚光燈到 startshadow locator 的距離差 . 為方便起見 , 這個(gè)差值命名為 sample point difference. 


section8 

上一步中得到的 sample point difference 是用來調(diào)整陰影的 . 如果這個(gè)值比較小 , 那么被渲染的點(diǎn)就離 startshadow locator 比較近 . 如果這個(gè)值比較大 , 那么被渲染的點(diǎn)就離 startshadow locator 比較遠(yuǎn) .

 

但是這個(gè) sample point difference 地值可以是從 0 到一個(gè)很大的數(shù) . 這個(gè)無限的范圍不太適合用于 ramp 節(jié)點(diǎn) .ramp 節(jié)點(diǎn)適合于 0-1 的范圍 . 為了解決這個(gè)問題 , 需要使用一些數(shù)學(xué)手段來把這個(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 的位置并不需要十分精確的位于陰影開始和結(jié)束的地方 . 我們可以以后在做調(diào)整 .

 

 

 

 

section9

clamp 節(jié)點(diǎn)能把輸入值限制在一定范圍內(nèi)輸出 .multiply divide 節(jié)點(diǎn)在被連接到 ramp 節(jié)點(diǎn)的 vcoordinate 屬性之前 , 將通過先 clamp 節(jié)點(diǎn)來限制范圍 .clamp 的 min 和 max 分別設(shè)為 0 和 1. 這意味這從 multiply divide 節(jié)點(diǎn)過來的輸入值在 0-1 之間的保持不變 . 小于 0 的按 0 輸出 , 大于 1 的按 1 輸出 . 

注意 : 在 clamp 節(jié)點(diǎn)中只使用 x-channel. 這是因?yàn)榫嚯x這個(gè)屬性是單值的 . 當(dāng)輸入的是 3 值類型的數(shù)據(jù)時(shí) ( 例如顏色的 rgb 值 ) 就要用到其他的 channel.

在這個(gè)渲染網(wǎng)絡(luò)中 ,clamp 節(jié)點(diǎn)的輸出值將連接到 ramp 節(jié)點(diǎn)的 vcoordinate 屬性上 .0 表示 vcoordinate 在底部 .1 表示 vcoordinate 在頂部 . 

我們可以通過調(diào)整 ramp 的位置和數(shù)值來控制輸出 . 最后 ramp 將連接到聚光燈的 filter size 和 shadow color 屬性上 . 注意 : 如果輸入的數(shù)據(jù)沒有經(jīng)過 clamp 節(jié)點(diǎn) , 在 0-1 范圍之外的數(shù)據(jù)將重復(fù) coordinate 的值 . 會(huì)導(dǎo)致一些不可預(yù)料的結(jié)果 .( 如下圖 ) 

section10

最終將用 2 個(gè) ramp 節(jié)點(diǎn)來控制 dmap shadow 的 filter size 和 the shadow color 屬性 .

filter size 將影響 dmap shadow 的柔化和模糊效果 . 本例中它被 blurinterpolationramp 節(jié)點(diǎn)控制 . 這個(gè)節(jié)點(diǎn)有兩個(gè) color entries. 在底部設(shè)為 2, 在頂部設(shè)為 32.

這意味著 filter size 的最小值為 2, 這個(gè)值用于渲染離 startshadow locator 最近的點(diǎn) . 而最大值 32 將用于渲染離 endshadow locator 最近的點(diǎn) . 這能給 dmap shadow 產(chǎn)生柔化的衰減效果 .

下圖是將 filter size 設(shè)為 1 和不設(shè)置的比較 . 

為了加強(qiáng)最終效果 , 我們把另一個(gè) ramp 節(jié)點(diǎn)連接到 shadow color 屬性上 . 這個(gè) ramp 的兩個(gè) color entries 的值分別設(shè)為 0.5 和 -0.5. -0.5 將 startshadow locator 附近的陰影變暗 . 而 0.5 使 endshadow locator 附近的陰影變亮和透明 . 

結(jié)論

以上例子證明了我們可以用一個(gè)衰減深度帖圖的渲染網(wǎng)絡(luò)來節(jié)省渲染時(shí)間 , 在許多情況下能代替光線追蹤的方式 .
3d教程完。


相關(guān)文章
網(wǎng)友評(píng)論

您需要登錄后才可以發(fā)帖 登錄 | 立即注冊(cè)

關(guān)閉

全部評(píng)論:0條

推薦
熱門