第一章:Introduction
- 概述
- 书中符号的用法
第二章:The Graphics Rendering Pipeline
- 渲染管线:Application->Geometry->Rasterizer
- 帧率的概念
- Application Stage:生成rendering primitives、碰撞检测、处理输入、处理动画等
- Geometry Stage:
- Model and View Transform:从model coordinate到world space,再到eye space
- Vertex Shading:计算每个顶点的位置、法向量、颜色、纹理坐标等
- Projection:变换到canonical view volume
- Clipping:把view volume之外的东西裁剪掉
- Screen Mapping:将坐标转换为screen coordinate
- Rasterizer Stage:
- Triangle Setup & Traversal:计算三角形覆盖的像素点和插值顶点数据
- Pixel Shading:处理primitive中每个像素的着色、贴图
- Merging:处理三角形的相互遮挡(Z-buffer)、程序指定的遮挡(Stencil buffer)等
- 双缓冲(double buffering):避免闪烁
第三章:The Graphics Processing Unit
- GPU管线概述
- 可编程着色器(dynamic flow control 如果有的走了if分支、有的走了else分支,那么两个分支都会被执行一遍)
- 可编程着色的演变
- Vertex Shader:计算顶点数据、创建primitive
- Geometry Shader:输入primitive进行处理 输出0个或多个primitive、保证输入输出的对应顺序
- Pixel Shader
- Merging
- Effect:举了个shader例子
第四章:Transforms
- 平移、旋转、缩放、剪切
- 变换的组合:顺序相关
- 刚体(Rigid-Body)变换:平移、旋转
- 法向量变换:不能直接用原变换矩阵
- 矩阵求逆
- 欧拉角:可从变换矩阵中提取、可用于限制选择的方向
- 矩阵分解:从变换矩阵中提取
- 以任意轴旋转
- 四元数(和矩阵的转换、球面线性插值)
- Vertex Blending(处理手臂的变化)
- Morphing(可用于存储表情differnce vector)
- 投影
第五章:Visual Appearance
- 光线、光源
- 材质:specular term和diffuse term的产生原理
- 图像传感器的工作原理
- Shading Equation
- 锯齿:产生原理、采样定理、FSAA、MSAA
- ClearType:人眼对形状比对颜色敏感,所以利用液晶屏每个像素点的红绿蓝来达到提升文字分辨率的效果(垂直分辨率加倍)
- 透明物体和alpha值:使用multiple passes、over操作、additive blending、premultiplied和unmultiplied、chroma-keying(电影绿幕、使用RGB中的一个作为透明色)
- Gamma矫正:CRT显示器产生的历史遗留问题、输入先矫正、输出最后矫正
第六章:Texturing
- 纹理管线
- Projector Function:获得某点在parameter space的坐标、mesh parameterization是个当前研究的热点
- Corresponder Function:获得在纹理中的位置
- Texture Values:获得实际的颜色
- Image Texturing:当一个像素点(pixel)无法和纹理点(texel)一一对应时的处理
- Magnification(一个texel对应多个pixel,相当于把纹理放大):双线性插值、向量纹理、distance field
- Minification(多个texel对应一个pixel,相当于把纹理缩小。如果每求一个pixel都要访问很多texel的话就很慢,所以需要特殊数据结构):Mipmap(当长宽缩放比例不一时效果差)、ripmap(占用三倍原图空间)、Summed-Area Table(区域越大存Sum需要的空间越大)、Unconstrained Anisotropic Filtering(可取任意四边形)
- Volume Textures:需要巨大空间
- Cube Maps:接缝效果不好
- 纹理缓存、压缩
- Procedural Texturing:把纹理算出来、常用于离线渲染
- Texture Animation:通过纹理坐标变化实现动画
- Material Mapping:specular和diffuse系数
- Alpha Mapping:部分透明、两个90度的多边形实现树木效果
- Bump Mapping
- Normal Mapping:临时改变法向量实现光照变化、但是没有遮挡效果
- Parallax Mapping:可以产生遮挡效果