Arnold 官方文件連結 👉 [Displacement#Displacement-BoundsPadding](https://docs.arnoldrenderer.com/display/A5AFMUG/Displacement#Displacement-BoundsPadding) --- 一般算圖引擎在計算 Displacement 的時候會有一個隱形的界線來限制 Displacement 實際位移模型表面的範圍,那個隱形界線通常是該模型的 bounding box (能容納該模型的最小立方體),超越那個界限就會被切掉,以節省計算資源。 如果要延伸出去,就得調整 **Bounds Padding** 這個參數,效果如下 ![](https://i.imgur.com/53lYiyP.png) **Bounds Padding** 從字面上看大概就是往邊界外擴的意思,數值該設定多少則視狀況,不同模型與不同的 displacement map 可能會有各自需要的數值來達到最佳效果。 因此 `Mesh` 節點跟 `displacementShader` 節點上都有這個參數,彼此之間的關係就請參考 Arnold 官方文件了 👉 [Displacement#Displacement-BoundsPadding](https://docs.arnoldrenderer.com/display/A5AFMUG/Displacement#Displacement-BoundsPadding) [![](https://knowhow.moonshine.tw/uploads/images/gallery/2020-12/scaled-1680-/wBTn4vSRSYhxnOve-image-1608644755727.png)](https://knowhow.moonshine.tw/uploads/images/gallery/2020-12/wBTn4vSRSYhxnOve-image-1608644755727.png) ### 實際案例 這邊有一塊平面跟一顆稍微穿插的球體,就像是地面上的擺設 ![](https://i.imgur.com/fdUQWai.png) 下面這張是 displacement 取消,只有 normal map 開啟的狀態 ![](https://i.imgur.com/kJXKPF5.png) 下面這張是 displacement 開啟,但 boundsPadding 為 0 的狀態,可以看到那顆球跟地面之間有一個奇怪的區域,像是影子被忽略計算的樣子,這就是 displacement 效果被切掉的狀況。 ![](https://i.imgur.com/SsrgDOj.png) 下面這張是 displacement 開啟, boundsPadding 為 3 的狀態 (3 是我自己看心情設定的,實際數值超過 1 有沒有幫助我不確定) 可以看到地面有確實整個上移。 ![](https://i.imgur.com/h8Pe7ys.png) 下面是方便比較的連續圖。 ![](https://i.imgur.com/AcuOiRA.gif) --- **因此,這個設定對於環境布置應該滿重要的,在地面有開啟 displacement 的狀態下,如果地面上要布置一些像是落葉的物體,可能就需要考量到 `boundsPadding` 的設定,否則可能會有預料之外的結果。** --- #### 補充 較舊版的 Arnold MtoA (3.1.2),`boundsPadding` 為 0 的模型與材質輸出成 standin 之後,該參數似乎會被忽略,強制算出完整的 displacement,造成 standin 算圖結果與工作檔的實際模型不同,有遇到的話再注意一下。(之後我們的 MtoA 都會使用新版的就是了,所以這一段先看看就好)