ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 图形渲染管道(Graphics Pipeline) 绘制3D图形需要一系列的步骤,我们抽象成渲染管道(流水线) ![](https://img.kancloud.cn/84/a2/84a2a3450f5ebd11efc6b5c777103a0a_800x599.png) - Vertex Shader :定点着色器 - Fragment Shader: 上色 ## 步骤 ### 顶点着色器 - 每个顶掉都要调用 - 每次调用产生一个顶点数据 ![](https://img.kancloud.cn/2b/0c/2b0c8e846bb556d5eafdc54b8ebee2c0_400x202.png) ### 图元组装 将位置.索引等信息组成三角形 ![](https://img.kancloud.cn/fa/92/fa92b265db62ac0118e59ad0883eee79_400x157.png) ### 栅格化 将图元数据转换成为一个一个像素的数据,每个数据称作一个片段(Fragment) ![](https://img.kancloud.cn/8a/c7/8ac7395eb462e24b9f02664253592259_400x162.png) - 左图,实线的三角形遮住了虚线的三角形,那么我们可以去掉虚线的三角形 - 右图, 虚线框为视界的范围,那么超出视界的范围可以被裁剪掉 #### Cull 和Clip - cul(选择去掉一些图元) - clip(剪裁去掉图元的某些部分) ### 片段着色器(Fragment Shader) - 每个像素都要调用 - 计算图元每个像素的颜色 ![](https://img.kancloud.cn/df/c4/dfc4a356798f9e779691318dd2074902_400x159.png) ### 着色操作-深度探测 深度探测 - 遍历所有图元中的像素,计算深度 - 如果存在深度更小(离用户更近的点),那么可以采取一些策略 ![](https://img.kancloud.cn/c9/68/c968e5133c4a6d61b591994ab8a645d7_250x245.png) ### 帧缓存区 (Frame Buffer) 存储发送给显示器的位图 ![](https://img.kancloud.cn/e4/25/e425a35a59c227661e111d8dd4399dcb_400x272.png)