3D 软光栅导学
3D 渲染管线流程
- 应用阶段
- 应用阶段在 CPU 处理,处理成 3D 顶点(顶点坐标,法向量,纹理坐标,颜色(可以不需要))。
- 渲染管线
- 顶点着色器
- 图元装配
- 几何着色器
- 光栅化
- 片段着色器
- 测试与混合
- 3D 软光栅流程
- 准备好顶点数据和图元类型(三角形▶️)
- 顶点着色器对顶点进行处理,使用矩阵向量方式处理。目的需要将模型顶点转成世界坐标,计算纹理坐标,顶点颜色,法向量需要存储在一个数据结构里面
- 模型坐标是建模的时候的坐标
- 坐标怎么转成世界坐标,其实就是坐标轴旋转和平移
- 什么是模型矩阵,模型矩阵是包括旋转,缩放,错切,平移矩阵
- 平移矩阵需要齐次坐标实现。统一了顶点变换。使用矩阵和向量相乘
- 根据顶点着色器输出的数据结构进行图元装配,通过 EBO(顶点索引) 和 顶点数据组装成三角形(▶️)
- 将顶点变换到摄像机(📹)的观测空间
- 对顶点投影
- 将顶点变换到裁切空间
- 裁剪和剔除工作
- 透视除法,把顶点转成(NDC)
- 视口矩阵作用于顶点,最终由 3D 坐标转成 2D 屏幕坐标
- 光栅化需要进行深度缓冲测试。缓存到 FrameBuffer 中
- 对顶点使用线性插值
- 每一个像素进行片段着色,纹理采样,光照计算,最后颜色是(RGBA)。
- 测试,透明度测试 =》模版测试 =》深度测试
- 混合
- 完
到此为止。本人水平有限,如有错误,敬请指正。