|
Shader在游戏中的作用非常重要,然而学习shader的路却不是那么容易,它涉及到方方面面的知识和基础, 比如:3D数学,计算机图形学甚至硬件。很多朋友为了达到一种特别的功能,往往在互联网上四处搜索别人的shader,最后却找不到适合自己需求的东西。与其纠结在无法理解和改良别人shader的痛苦中,不如放弃盲目和被动,转而从头学习这种“代码的艺术”。
本教程“授人以渔”,为大家带来零起点的shader教学,从图形硬件的发展史开始,讲GPU可编程管线,讲现代shader language的发展历程,让大家能从一个纵深的过程中宏观的了解这种技术的前世今生。教程以Unity引擎为环境 ,重点放在Cg语言的学习和经典光照的计算上。 为了突破难点,作者铺助了大量图文课件进行讲解3D数学和图形学知识,手把手在unity环境下进行逐行代码的coding教学,期望帮助大家进入Shader编程的大门,最终能在实际的工程实践中有些创造和创新。
课程目录:
1.图形硬件简史与可编程管线 2.Shader和渲染管线[bbs.cmzy168.com] 3.三大主流编程语言HLSL/GLSL/Cg 4.Unityshader的组织形式(Shaderlab) 5.固定管线shader(Fixedfunctionshader)_1 6.固定管线shader(Fixedfunctionshader)_2 7.Surfaceshader1[bbs.cmzy168.com] 8.Surfaceshader2 9.Cg语言入门1输入输出和语义[bbs.cmzy168.com] 10.Cg语言入门3profile和基本数据类型 11.Cg语言入门4数据类型和swizzle操作 12.Cg语言入门5流程控制[bbs.cmzy168.com] 13.Cg语言入门6Cg函数1 14.Cg语言入门6Cg函数2 15.3D数学基础1-坐标系 16.3D数学基础2-向量[bbs.cmzy168.com] 17.3D数学基础3-矩阵 18.3D数学基础4-矩阵和行列式 19.3D数学基础5-矩阵的逆[bbs.cmzy168.com] 20.3D数学基础6-矩阵和变换 21.3D数学基础实例-C#矩阵变换与三维渲染1 22.3D数学基础实例-C#矩阵变换与三维渲染2 23.3D数学基础实例-C#矩阵变换与三维渲染3 24.3D数学基础实例-C#矩阵变换与三维渲染4 25.3D数学基础实例-C#矩阵变换与三维渲染5 26.3D数学基础实例-C#矩阵变换与三维渲染6 27.VertexShader-顶点数据的输入与输出1[bbs.cmzy168.com] 28.VertexShader-顶点数据的输入与输出2 29.VertexShader-更好的数据组织方式struct 30.VertexShader-Uniform与properties属性 31.VertexShader-几何变换—MVP矩阵变换1[bbs.cmzy168.com] 32.VertexShader-几何变换—MVP矩阵变换2 33.VertexShader-几何变换—顶点颜色变换1 34.VertexShader-几何变换—顶点颜色变换2 35.VertexShader-几何变换—顶点位移[bbs.cmzy168.com] 36.VertexShader-几何变换—扭曲 37.VertexShader-几何变换—波[bbs.cmzy168.com] 38.图形学入门-法向量与光[bbs.cmzy168.com] 39.基础实例-C#光照渲染1 40.基础实例-C#光照渲染2[bbs.cmzy168.com] 41.基础实例-C#光照渲染3 42.基础实例-C#光照渲染4 43.图形学入门-实现漫反射Diffuseshader1 44.图形学入门-实现漫反射Diffuseshader2 45.图形学入门-反射向量与Cgreflect函数 46.图形学入门–实现phong光照[bbs.cmzy168.com] 47.图形学入门-半角向量与BlinnPhong 48.Fragmentshader-片段级光照1 49.Fragmentshader-片段级光照2 50.Fragmentshader-片段级光照3 51.Fragmentshader-片段颜色混合[bbs.cmzy168.com] 52.Fragmentshader-边缘泛光shader1 53.Fragmentshader-边缘泛光shader2[bbs.cmzy168.com] 54.Fragmentshader-片段级模型动态变色1 55.Fragmentshader-片段级模型动态变色2 56.Fragmentshader-片段级模型动态变色3 57.Fragmentshader-2D纹理采样1[bbs.cmzy168.com] 58.Fragmentshader-2D纹理采样2 59.Fragmentshader-2D纹理采样3 60.Fragmentshader–UV动画1[bbs.cmzy168.com] 61.Fragmentshader–UV动画2 62.Fragmentshader–UV动画3 63.Fragmentshader–纹理混合动画1 64.Fragmentshader–纹理混合动画2 65.Fragmentshader–程序纹理[bbs.cmzy168.com] 66.Fragmentshader–程序纹理水波仿真1 67.Fragmentshader–程序纹理水波仿真2 68.Fragmentshader–程序纹理水波仿真3 69.Fragmentshader–程序纹理水波仿真4 70.Fragmentshader-Alpha与blend运算[bbs.cmzy168.com] 71.Fragmentshader7-实现半透明着色1 72.Fragmentshader7-实现半透明着色2 73.Fragmentshader-纹理法线与凹凸贴图1[bbs.cmzy168.com] 74.Fragmentshader-纹理法线与凹凸贴图2 75.Fragmentshader-纹理法线与凹凸贴图3 76.Fragmentshader-纹理法线与凹凸贴图4 77.Fragmentshader-Cube纹理采样[bbs.cmzy168.com] 78.Fragmentshader-实现高效的reflectionshader
|