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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:最近在做一个美术馆的场景,对于灯光的要求非常高,经过几天的调试和在网上查阅一些资料,总结一下。全局光照,简称...
    Tang7阅读 2,483评论 0 9
  • 我确实什么都不懂。 我写文字,主要是因为心中确实有一些东西想,或有一些情绪要发泄,并不是我觉得,自己能写出什么动人...
    力牧阅读 328评论 0 0