Unity引擎实战箴言之移动平台PBR踩坑

效果:

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

你可能感兴趣的:(Unity引擎实战箴言之移动平台PBR踩坑)