天天看點

《Unity開發實戰》——3.11節禁用材質剔除

本節書摘來自華章社群《unity開發實戰》一書中的第3章,第3.11節禁用材質剔除,作者 (愛爾蘭)matt smith (巴西)chico queiroz,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

3.11 禁用材質剔除

當建立一個透明或半透明對象的時候,可能想看它的内部表面。但是預設情況下unity的透明着色器讓其不可見。本節将編輯unity中的内置透明着色器以讓其對使用者可見。

3.11.1 準備工作

3.11.2 操作步驟

請按照下面的步驟禁止材質剔除:

1)打開帶有unity内置shaders源碼的壓縮包,解壓defaultresources檔案夾中名為alphatest-bumpspec.shader的檔案到桌面上。

2)複制alphatest-bumpspec.shader 重命名為 alphatest-doublesided. shader,并打開。

3)把第一行修改成: shader "transparent/cutout/doublesided" {。

4)添加下面的代碼:

《Unity開發實戰》——3.11節禁用材質剔除
《Unity開發實戰》——3.11節禁用材質剔除

3.11.3 實作原理

cull off 指令讓unity渲染物體的前後表面,雖然對于cutout shader來說用着還行,但用透明着色器的其他類型可能導緻不可預料的結果。

3.11.4 更多内容

這裡有一些附加的資源和解決方案:

學習更多關于shaders的知識

通過編輯對象的geometry解決問題

可以通過複制3d模型的表面得到類似的結果,然後翻轉新幾何體的法線。

繼續閱讀