效果:
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编译优化,节省内存