Shader主流上分為兩類:
表面着色器(surface shader):更進階的封裝,減少人工工作量,能實作大部分效果,缺點是自定義程度不 高,相對局限;
片段着色器(fragment shader):可以讓你做更多的效果,但是此shader更難寫。你也可以用它做一些底層的工作,比如頂點光照(Vertex lighting,即在每個頂點存儲該點的光照資訊)。頂點光照對于移動裝置很有用。該shader對于一些需要多通道(multiple passes)的進階渲染效果也很有效。—引用文章:Unity3D Shader 新手教程(1/6)
将“片段着色器”Shader由通用渲染管線轉換至URP渲染管線
本文主要是由于在一開始建構Shader時沒有考慮到後期更改渲染管線的問題,是以才會出現後期轉換Shader。
在渲染管線從通用切換至URP時,基于原Shader建立的材質出現紫紅色報錯,使用Unity内部的轉換材質球無效,考慮從Shader入手。
解決辦法就是在第一個“Pass”下增加一行代碼:
Tags{“LightMode” = “UniversalForward”} //LWRP不可用此Tag
需要注意的問題是:
1.我的Unity版本為2020;
2.老版本能否相容并未測試;
3.其他未知錯誤…