GAMES101-08:着色2:着色频率&实时渲染管线
八、着色2:着色频率&实时渲染管线
8.1 着色频率
- 着色频率即为:将结果应用到哪些平面上
- 左1:应用到每个三角面上,Flat Shading
- 左2:应用到每个顶点上,Gouraud Shading
- 左3:应用到每个像素上,Phong Shading
8.1.1 计算顶点法线
将与该顶点相关的所有面的法线,做加权平均,权重为三角形面积
\[ N_v=\frac{\sum_i N_i}{|\sum_i N_i|} \]
8.1.2 计算像素法线
使用重心坐标,对相邻两个顶点的法线进行插值
8.2 实时渲染管线
- 输入:3维空间中的若干个点
- Vertex Processing:将3维空间的点,投影到屏幕空间上
- Model, View Projection变换
- 着色、纹理映射
- Triangle Processing:形成屏幕空间上的三角形
- Rasterization:通过光栅化,将三角形绘制到屏幕上
- 对三角形是否覆盖进行采样
- Fragment Processing:对像素进行着色
- Z-Buffer
- 着色、纹理映射
- Framebuffer Opreations:将三角形拼装成图像
8.3 Shader程序
- 对每一个顶点/像素,Shader均会执行一次
- 顶点着色器:对顶点操作
- 片段着色器、像素着色器:对像素操作,确定当前像素是什么颜色
8.4 GPU
- 是整个图形管线的硬件实现:如光栅化、投影
- 有一部分是可编程的:即着色器
- GPGPU:通用GPU计算,可以完成各种各样的GPU计算
- 是一个高度并行化的多核处理器
8.5 纹理映射
根本作用:定义3维物体上任何一个点的属性
纹理:任何一个3维物体的表面都是2维的,因此可以和一张图有一个一一对应的关系,这张图即为纹理
- 将3维物体上的每一个三角形的顶点,映射到纹理图像上
- 由美工完成
- 自动化:参数化模型
- 将3维物体上的每一个三角形的顶点,映射到纹理图像上
UV坐标系:即纹理坐标的坐标系,通常范围为[0~1] × [0~1]
不同的位置可以映射到同一个位置上
好的纹理:纹理的上下左右可以无缝衔接,称为tiled textures
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 华风夏韵!
评论