您的位置:首页 > 移动开发 > Unity3D

Unity Shader学习总结(基础篇)

2015-12-12 10:31 218 查看
【学习资源】

英文原文:https://en.wikibooks.org/wiki/Cg_Programming/Unity

中文翻译:http://www.omuying.com/article/83.aspx

【目录:基础部分】

第一章节:最简单的着色器http://www.omuying.com/article/84.aspx

第二章节:RGB立方体http://www.omuying.com/article/87.aspx

第三章节:在着色器中调试http://www.omuying.com/article/91.aspx

第四章节:世界空间中的着色器http://www.omuying.com/article/92.aspx

【总结】

第一章节:最简单的着色器

主要是介绍如何在Unity中创建工程,Gameobject,Shader,Material。

关键是要弄清后三者之间的联系。

还不能很好的理解语义的作用。

第二章节:RGB立方体

主要实现了RGB立方体效果,即立方体上每一点的颜色由它的坐标决定。

理解物体坐标系、世界坐标系等。

理解结构体。

还是注意理解语义。

第三章节:在着色器中调试

关注顶点输入参数列表。

顶点着色器的输入参数从何而得?

——在Unity中,一个游戏对象的MeshRender组件在每帧都会发送游戏对象的网格数据到OpenGL(这被称为一此“draw call”,每一次“draw call”都有一些性能开销,因此,每次给OpenGL提交大网格数据比每次提交几个小的网格数据更有效率,即一次“draw call”比多次“draw call”更有效率)。这些数据通常包括一个三角形列表,每个三角形列表都包括三个顶点,每个顶点都有一定的属性,比如位置等。

注意,切线只有前三个分量表示切线方向,第四个分量表示缩放,这在处理视差贴图时比较有用。

第四章节:世界空间中的着色器

关注uniform参数使用(Unity提供了很多内部帮助,这在OpenGL或Direct3D中很重要)。

通过C#脚本来动态改变Shader的属性值,注意sharedMaterial和material的区别(使用 sharedMaterial 我们可以改变所有使用了这个材质的对象的参数,如果你只希望改变一个并使用了这个材质的对象的参数,那么你应该使用 material )。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: