maya教程-分析衰減深度帖圖陰影(一)
我們可以用使用深度帖圖陰影來模擬柔和的光線追蹤 (RayTracing) 的效果 .
衰減 (ATTENUATED) 這個詞的含義是消減和柔化陰影 . 在以下的例子中 , 我們通過調整陰影的顏色來減弱陰影的亮度 . 我們這里所演示的技巧在某些場景中是十分有效的 . 他能極大的減少渲染時間 . 但是在某些場合慊故潛匭朧褂霉庀咦紛?. 例如當光線通過使用了透明帖圖的物體或有顏色的透明表面時 , 就要必須使用光線追蹤 .( 但即使是后面兩種情況有時也可以用深度帖圖模擬光線追蹤 . 可以參考我翻譯的另一篇教程。
下面兩圖是左邊用光線追蹤右邊是衰減深度帖圖渲染 . 效果差不多但是光線追蹤的渲染時間要多 2.6 倍 .
Section1
打開場景 attenuatedDmapShadow.mb 這個場景包含一個椅子模型和一個加上了 attenuated dmap shadow 效果的聚光燈 , 其名稱為 dmapSoftShadow.
Section2 .
在 Hypershade 窗口中的 light 選項卡下選擇 dmapSoftShadow, 并點擊 Show Upstream Connections 按鈕 . 便可以看到這個聚光燈的網絡節(jié)點 . 這個網絡是為了從最近點到最遠點淡化陰影而設置的 . 它包含 3 個 Locators, 一個燈光信息節(jié)點以及一些能驅使兩個 Ramp textures 調整陰影的過濾尺寸和顏色屬性的數(shù)學節(jié)點 .
Section3
Locator 的作用是在空間里標定位置 . 第一個 Locator 的位置就是聚光燈的位置 , 他和聚光燈之間有 constrained 的聯(lián)系 . 另外兩個 Locator 分別在陰影的開始和結束的位置 .
Section4
這 3 個 locators 與 2 個 Distance Between 節(jié)點連接 .Distance Between 節(jié)點是用來計算聚光燈和另外兩個 locator 的距離的 .
Distance Between 節(jié)點輸出的是 3D 空間上兩點間的距離 . 是通過下面的公式計算的 .
(x1,y1,z1) 和 (x2,y2,z2) 分別是兩個 locator 的坐標 .
注意 : 必須用 MEL 命令來創(chuàng)建 Distance Between 節(jié)點 , 輸入 createNode distanceBetween; 命令 . 這個節(jié)點不會在 Hypershade 出現(xiàn) . 你必須在 Outliner 中用鼠標中鍵把它拖到 Hypershade 中去 .
Section5
然后把聚光燈到兩個 locator 的距離連接到 plusMinusAverage Utility 節(jié)點上 . 并將此節(jié)點設為 Subtract 方式 . 這是一個將聚光燈到兩個 locator 的距離相減的工具 . 我們可以了解到兩個距離之差 ( 注意這里是遵循矢量加減法則 )
這個距離上的差值將決定兩個 Ramp texture 節(jié)點如何影響 dmap shadow 的 Filter Size 和 Shadow Color.
Section6
為了確定聚光燈到某個點的距離 , 必須使用 Light Info Utility 節(jié)點 . 和 Sampler Info 節(jié)點相似 ,Light Info 節(jié)點與其他節(jié)點連接時能提供某個被渲染點的信息 .
Light Info 與 Sampler Info 不同之處在于需要將一個燈光信息連接到 Light Info 上 . 你會注意到在渲染網絡中 dmapSoftShadow 聚光燈的 worldMatrix[0] 屬性連接到了 Light Info 節(jié)點的 worldMatrix 屬性上 . 它告訴了 Light Info 從場景中的什么地方計算輸出屬性 Sample Distance.
Sample Distance 是從聚光燈中心到某個被渲染點的距離 .
注意 :Light Info 節(jié)點在確定 Sample Distance 時十分有用 .
上一篇:maya制作光線陰影