图形渲染管线、图形处理单元[实时渲染]

一、图形渲染管线

1.结构

4个主要步骤:应用程序,几何处理,光栅化和像素处理

图形渲染管线、图形处理单元[实时渲染]

几何处理阶段又分为顶点着色,投影,剪切和屏幕映射。

图形渲染管线、图形处理单元[实时渲染]

顶点着色之后,有3个阶段镶嵌,几何着色和流输出。

光栅化的2个子阶段,三角形设置和三角形遍历。

图形渲染管线、图形处理单元[实时渲染]

二、图形处理单元

1.数据并行体系结构

单指令,多数据(SIMD)

简化着色器执行示例

2.GPU管线总览

GPU实现渲染管线流程图:

图形渲染管线、图形处理单元[实时渲染]

3.可编程的着色阶段

统一虚拟机架构和寄存器布局如下图:

图形渲染管线、图形处理单元[实时渲染]

4.着色语言API

最早的着色器结构:

图形渲染管线、图形处理单元[实时渲染]

5.顶点着色器

6.曲面细分阶段

曲面细分流程图如下:

图形渲染管线、图形处理单元[实时渲染]

hull shader 阶段接受曲面参数,效果如图:

图形渲染管线、图形处理单元[实时渲染]

7.几何着色器

GPU运行的阶段有:光栅化,曲面细分,几何着色器。

流输出

8.像素着色器

9.融合阶段

10.计算着色器

三、变换

图形渲染管线、图形处理单元[实时渲染]表示一个点

图形渲染管线、图形处理单元[实时渲染]表示一个向量

1.基础变换

平移:平移矩阵:图形渲染管线、图形处理单元[实时渲染]

平移示意图:图形渲染管线、图形处理单元[实时渲染]

旋转:

图形渲染管线、图形处理单元[实时渲染]

三个方向的旋转矩阵为:

图形渲染管线、图形处理单元[实时渲染]

例子:围绕一个点旋转:

图形渲染管线、图形处理单元[实时渲染]解释如下图:

图形渲染管线、图形处理单元[实时渲染]

缩放:缩放矩阵

图形渲染管线、图形处理单元[实时渲染]

例子:按某种方向缩放:

构造F:图形渲染管线、图形处理单元[实时渲染]

图形渲染管线、图形处理单元[实时渲染]

扭曲:图形渲染管线、图形处理单元[实时渲染]

效果图如下:

图形渲染管线、图形处理单元[实时渲染]

变换的连接:依赖于顺序

图下表示不同顺序产生不同的结果:

图形渲染管线、图形处理单元[实时渲染]

顺序为:图形渲染管线、图形处理单元[实时渲染]

刚体变换:只有平移和缩放的变换

刚体变换矩阵:图形渲染管线、图形处理单元[实时渲染]

X的逆:图形渲染管线、图形处理单元[实时渲染]

定位相机:图形渲染管线、图形处理单元[实时渲染]

相机偏移矩阵图形渲染管线、图形处理单元[实时渲染]

法线变换:

图形渲染管线、图形处理单元[实时渲染]

正确的办法使用伴随矩阵去计算法线。

逆的计算:

2.特殊矩阵变换与操作

The Euler Transform:

图形渲染管线、图形处理单元[实时渲染]

图形渲染管线、图形处理单元[实时渲染]

参数:

矩阵分解:

任意轴的旋转:

图形渲染管线、图形处理单元[实时渲染]

四元数: