第一章 渲染管线 the rendering pipeline
1.1图形处理器
一个渲染的3D场景是由许多独立的物体组成的。这些物体的几何构成是点集和一些特殊基本图元类型,表明顶点如何连接成一个形状
图形硬件对于渲染独立的点集 线段 填充的多边形非常有用
通常情况下3D模型的表面是三角形,每个三角形由顶点列表中的三个点构成
CPU发送渲染命令给GPU,当CPU执行其余任务时它依然执行渲染操作,称为异步操作
应用程序通过发送命令给渲染库与GPU交流,例如OPENGL,依次发送命令给驱动才知道如何用自然语言和GPU对话
opengl的接口叫做HAL,它暴露了一个常用函数集合,使得他可以在任何的支持OPENGL架构的图形硬件上进行渲染
驱动程序将OPENGL函数转换为GPU可以理解的代码
3Du图形驱动直接实现了OPENGL接口来最小化分配渲染命令的开销
3D图形卡有他自己的的内存核心,通常称为VRAM
前台图形缓存
后台图形缓存
缓存交换
深度缓冲
模板缓冲
对于绝大多数的3D渲染软件,VRAM的使用被纹理贴图控制
纹理贴图是应用在物体表面给予较好的视觉细节
1.2顶点变换
局部坐标 世界坐标 摄像机坐标空间 -投影-齐次裁剪空间-视图转换-窗口空间
局部坐标-model-view变换-摄像机空间
1.3光栅化和片段操作
填充属于一个元的像素的水平范围的过程被称为光栅化
GPU计算
face culling 远离摄像机和背对摄像机的几何体图元
像素所有权测试 剪裁测试 透明度测试 模板测试 深度测试 混合