【Unity Shader入门精要】— 扩展篇

来源:互联网 发布:咖啡入门 知乎 编辑:程序博客网 时间:2024/05/17 06:07

内容会持续更新,有错误的地方欢迎指正,谢谢!

引言

本书还有扩展篇,这篇文章我们来说说扩展篇。考虑到内容较多,我在扩展篇博客里只列一些提纲和我自己的一些总结、领悟,具体实现方法,希望各位看客,购买乐乐女神的书,好好琢磨研究~

Unity的表面着色器探秘

说到表面着色器,怎么能不提《着色器和屏幕特效开发秘籍》这本书!表面着色器的各种细节和应用请参考我的系列博客,这里放出一篇文章的链接出来:《着色器和屏幕特效》读书笔记

表面着色器的缺点:
表面着色器是Unity在顶点/片元着色器上提供的一种封装,任何在表面着色器中能实现的效果都能在顶点/片元着色器中实现,反之,则不成立。
任何事情都是有代价的,如果想要得到便利(可快速实现多种光照效果),必会损失性能!想要进行更多深层的优化,表面着色器就非常乏力了。

**缺点总结:**1.性能比较差;2.无法完成一些自定义的渲染效果。

如何决定使用哪种着色器:
1. 若想要和多种光源打交道,就使用表面着色器。
2. 若使用的光照数目少,例如就一个平行光,那么就使用顶点/片元着色器。
3. 若你想实现很多自定义的渲染效果,那么也还是使用顶点/片元着色器。

基于物理的渲染(PBR又名PBS)

尽管PBR技术在手机游戏中应用不多,但这是未来的趋势~

Unity5更新了啥

  1. 场景亮了两倍。
  2. 表面着色器更容易报错了。错误通常指Shader中数学指令或插值寄存器的数目超出了限制,因为Unity在转换过程中使用了更多的计算和插值寄存器来计算阴影、雾效、非统一缩放模型的法线变换矩阵。
  3. 需自己控制非统一缩放的网格。我们在顶点/片元着色器中变换顶点法线,需要小心非统一缩放的影响,以及需要对变换后的法线进行手动归一化操作。
  4. 固定管线着色器已退出舞台。

各位看官,再见~

原创粉丝点击