效果:
1.強開BRDF1函數,否則電腦和手機效果完全不一樣
2.修正數值溢出,否則手機會出現黑絲
3.模擬線性顏色空間,否則亮度最多會相差25%
方法是在gamma空間下將所有的uniform顏色輸入都轉為線性空間,輸出時再轉為gamma空間,不過半透明要用特殊方法處理
顏色輸入包括燈光與材質
燈光包括主像素光,附加像素光,頂點光,球諧光,反射探頭,動靜lightmap
材質包括貼圖顏色,不包括半透明,顏色屬性,常量屬性
模擬時還可以用近似函數加速
uniform的判斷分支在現代gpu上速度很快
4.處理打bundle時的shader feature,否則手機上金屬光澤貼圖與法線貼圖效果全沒了
方法是bundle內放個合適的材質,因為shader feature是按同一bundle內的材質引用開啟宏
5.環境貼圖兼容場景光照方案
方法是角色用動態烘焙的環境光與custom反射
場景用烘焙到lightmap里的環境光,不用反射
效率:
6.環境光與反射共用一張環境貼圖,節省內存
7.shader編譯優化,節省內存