本教程“授人以渔”,为大家带来零起点的shader教学,从图形硬件的发展史开始,讲GPU可编程管线,讲现代shader language的发展历程,让大家能从一个纵深的过程中宏观的了解这种技术的前世今生。教程以Unity引擎为环境 ,重点放在Cg语言的学习和经典光照的计算上。 为了突破难点,作者铺助了大量图文课件进行讲解3D数学和图形学知识,手把手在unity环境下进行逐行代码的coding教学,期望帮助大家进入Shader编程的大门,最终能在实际的工程实践中有些创造和创新。
% {# `% E9 r: k3 s* _
1.图形硬件简史与可编程管线
2.Shader和渲染管线' S' E4 |9 v7 c e ]$ | u
3.三大主流编程语言HLSL/GLSL/Cg
2 q7 r- U7 x5 e& |# B5 @8 V
4.Unityshader的组织形式(Shaderlab)" t9 \* o# h0 r3 i9 M, |$ f8 u0 Q
5.固定管线shader(Fixedfunctionshader)_10 Z8 b8 C3 V$ j( Z) }; M; D4 ]5 E9 X
6.固定管线shader(Fixedfunctionshader)_2
7.Surfaceshader1# F3 o V! V, ~
& f& u8 S- A, D9 w; P
8.Surfaceshader29 v, q9 R) D+ M1 w3 Q" t5 V5 I4 i1 [
9.Cg语言入门1输入输出和语义/ n" x8 Q3 Y( L) `4 q7 ]) E
10.Cg语言入门3profile和基本数据类型0 g% q3 l& w" V' D4 l; o4 U! |& E
11.Cg语言入门4数据类型和swizzle操作) [1 a4 a) o3 @7 A( h9 p
12.Cg语言入门5流程控制
13.Cg语言入门6Cg函数18 w. \9 n' @, O2 y) v
' ?0 N$ r3 Z3 w0 p" }5 F+ e+ L$ Q
14.Cg语言入门6Cg函数2
15.3D数学基础1-坐标系$ K: \* U0 Y3 U: x1 S$ [" J
16.3D数学基础2-向量
17.3D数学基础3-矩阵
, [4 k$ o+ A/ ?; ]& h* d
18.3D数学基础4-矩阵和行列式0 L( R3 {/ s6 U; J9 d8 @3 m
19.3D数学基础5-矩阵的逆
20.3D数学基础6-矩阵和变换: w/ i. {% ]5 B& V: }% S
# w9 t# X Q, M; K
21.3D数学基础实例-C#矩阵变换与三维渲染1
: E) h/ S' ]# F D
22.3D数学基础实例-C#矩阵变换与三维渲染2
23.3D数学基础实例-C#矩阵变换与三维渲染3
) R0 E8 ^6 `; `* m' L$ _
24.3D数学基础实例-C#矩阵变换与三维渲染4! u; w( T) `2 {
, s% M. L& ?. S. w
25.3D数学基础实例-C#矩阵变换与三维渲染52 `& i+ | _; Q8 B9 ]
" ?) _$ ?; u! v. h
26.3D数学基础实例-C#矩阵变换与三维渲染6
27.VertexShader-顶点数据的输入与输出10 P6 S& p0 w& z/ ]
28.VertexShader-顶点数据的输入与输出2, R0 e; E: t1 m
) a7 G5 |9 W- _" D, B' [
29.VertexShader-更好的数据组织方式struct; x I$ |& ~5 t& g# D' y
- E$ F4 R: K) F+ q! v/ m3 y) `
30.VertexShader-Uniform与properties属性
5 C% V1 |! Q- ]% ^: V8 J i
31.VertexShader-几何变换—MVP矩阵变换1- U. U$ ^2 U* C8 [0 p; K
9 t: l- M5 R0 Z7 i u% t
32.VertexShader-几何变换—MVP矩阵变换20 B' R; c# y( m4 Z
33.VertexShader-几何变换—顶点颜色变换1
, U3 i$ c9 \) |
34.VertexShader-几何变换—顶点颜色变换2
0 X1 a( e/ s7 ^9 W& f2 v% t6 Z" Y
35.VertexShader-几何变换—顶点位移+ i! |- F% Y5 i9 z6 d( F5 j
36.VertexShader-几何变换—扭曲
$ ^$ V* v( S9 y! }
37.VertexShader-几何变换—波5 w9 n% M2 D: t0 l7 G, {
38.图形学入门-法向量与光2 O1 e& ]0 _. P3 W0 r* C
2 { m& i4 a ] Y4 O! D
39.基础实例-C#光照渲染1
40.基础实例-C#光照渲染2
4 l7 {3 ?1 }% K7 s' B
41.基础实例-C#光照渲染3) E) J# E# ?$ B" x: a; o. H6 w
42.基础实例-C#光照渲染4 f. h! M3 i$ J6 }0 i1 N0 R
: c6 e" |1 J( g4 B
43.图形学入门-实现漫反射Diffuseshader1
# d- t1 }- u1 z" U" f$ j+ z, y
44.图形学入门-实现漫反射Diffuseshader2, k' b t% j* l2 u
& l2 S. }& G x m
45.图形学入门-反射向量与Cgreflect函数
46.图形学入门–实现phong光照" I* P! N j* N7 Y; P+ L! t; [
47.图形学入门-半角向量与BlinnPhong
48.Fragmentshader-片段级光照11 ?; e' ^2 w% _" H' }! |/ k
49.Fragmentshader-片段级光照2# `/ F; }9 K$ ]0 m- Q$ L
50.Fragmentshader-片段级光照3
51.Fragmentshader-片段颜色混合4 U0 f$ v' B% M+ s0 D: A5 k
7 G3 X& v0 O' L4 F! G1 L0 U
52.Fragmentshader-边缘泛光shader1
9 w7 T, q' s7 x' d1 X
53.Fragmentshader-边缘泛光shader2
" W4 o& U5 w. V# P' P7 J
54.Fragmentshader-片段级模型动态变色1: f' Y2 ~8 X! s; p- t3 P% V/ v
% q; L$ e ?- R) M
55.Fragmentshader-片段级模型动态变色2
56.Fragmentshader-片段级模型动态变色3/ P9 F! l/ J7 K
57.Fragmentshader-2D纹理采样1+ P3 O8 [3 ^3 F; x0 `) M- {
58.Fragmentshader-2D纹理采样2
59.Fragmentshader-2D纹理采样3
' u4 _) a* J; C O' i
60.Fragmentshader–UV动画1
* D' J( S2 e- z7 U
61.Fragmentshader–UV动画2) [3 X0 S& d U, @' @. _
; C$ K9 w+ E+ [; v+ {
62.Fragmentshader–UV动画34 p4 ]& c- y" e
/ K1 ?. S, i p0 A& E
63.Fragmentshader–纹理混合动画1
64.Fragmentshader–纹理混合动画2
65.Fragmentshader–程序纹理
66.Fragmentshader–程序纹理水波仿真1
67.Fragmentshader–程序纹理水波仿真25 S, z* i) m; s0 |
68.Fragmentshader–程序纹理水波仿真3. K W: ]& r( D+ N) J, O+ M" t
$ v$ a# |1 _- Z7 f& J& Z* V9 n
69.Fragmentshader–程序纹理水波仿真4$ G3 x# ]! P9 a3 l2 j7 V! p/ p# y
* u |7 ]+ e! f- G" u2 R) h$ Q
70.Fragmentshader-Alpha与blend运算& n% e- L+ S" N# K/ r& @' w) t
- j8 `3 V: @- ?
71.Fragmentshader7-实现半透明着色1% i( B" v2 O. ?
72.Fragmentshader7-实现半透明着色2/ X2 a% U0 B9 M# c& _2 I+ p1 f
73.Fragmentshader-纹理法线与凹凸贴图1
: M( x9 o4 y0 o/ [" Z; j% X; j; `9 R
74.Fragmentshader-纹理法线与凹凸贴图2; Q6 O0 L& o1 @* o: o
75.Fragmentshader-纹理法线与凹凸贴图3
76.Fragmentshader-纹理法线与凹凸贴图44 f' d2 \$ {! V2 |) N. G& w t
+ [* ?, K e) P6 Y6 S3 a5 f" ]
77.Fragmentshader-Cube纹理采样
' o9 b: Q& t! |1 Q4 L) D% _% G
78.Fragmentshader-实现高效的reflectionshader
下载地址:
|