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