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 )。
英文原文: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 )。
相关文章推荐
- Unity Shader学习总结(资料篇)
- Unity3d获取在Asset中选中的目录、资源 的路径
- 3DS导出到Unity3D的注意事项
- Unity3D无缝场景切换解决方案 - 简单场景切换
- Unity 协程使用(嵌套)
- 王立平--Unity综上所述控制
- 怎么给Unity写一个原生的插件
- 怎么给Unity写一个原生的插件
- Unity3D研究院之Assetbundle的实战(六十三)
- Unity3D研究院之将场景导出XML或JSON或二进制并且解析还原场景(四十二)
- Unity学习笔记(4) --- Unity的界面排版:初识GUI
- 关于unity3d纹理贴图的学习总结
- Unity: 自定义角色中的蒙皮网格替换
- Unity学习笔记(3) --- Unity的界面排版:初识GUILayout
- Unity3D流行的游戏开发人员构建高速检查站系统
- 使用Unity for Android 集成 Cardboard教程
- 年末重磅 | 12月Unity 2D新功能发布会现已开放报名!
- Unity 5.x BuildAssetBundles 角色换装 基础使用
- 使用unity UGUI 利用Socket 实现 多客户端通讯
- Unity5的AssetBundle的一点使用心得