渲染流水线概述

渲染流水线过程 rendering pipeline

渲染流水线是以摄像机为观察视角而生成2D图像的一系列完整步骤。

 

输入装配器 -> 顶点着色器 -> 外壳着色器 -> 曲面细分阶段 -> 域着色阶段 -> 几何着色器阶段 -> 流输出阶段 -> 光栅化阶段 -> 像素着色器阶段 -> 输出合并阶段

 

输入装配器:

Direct处理顶点数据的过程,各种类型的数据,比如顶点,三角形带,索引等等。

 

顶点着色器:

利用顶点着色器来实现许多特效,例如变换,光照和位移贴图顶点。

(1)局部坐标->世界坐标

 

(2)世界坐标 -> 摄像机坐标

这个变换被称为取景变换(view transform)。利用求世界坐标到观察空间的逆变换。

W=RT -> V=W^-1=(RT)^-1=T^-1*R^-1=T^-1*R^T

 

投影和齐次剪裁空间:令观察空间的坐标到投影平面。被称为透视投影变换(perspective projection transformation).

 

PS:

我们在图形学中,一般会有五个坐标系,分别是:

 

物体坐标系(本地坐标系)Local Space 或 Model Space

世界坐标系 World Space

观察者坐标系(摄像机坐标系) View Space

裁剪空间 Clipping Space

屏幕空间 Screen Space

其中前四个矩阵之间,主要通过model, view, projection矩阵进行相关的变换, 裁剪空间到屏幕空间通过视口变换进行;前三个是三维空间,后面两个是二维空间。

 

其转换过程如图1.1所示:

所有的变换都发生在顶点着色器,经过顶点着色器,所有的顶点都变成了屏幕上的二维坐标,下一步是进行图元装配之后进入几何着色器。

 

 

(可选)曲面细分阶段:

是利用镶嵌化处理技术对网格中的三角形进行细分,以此增加三角形的数量。再将这些新增的三角形偏移到适当的位置,使得网格表现出更加细腻的细节。

 

几何着色器:

将形状(图元)划分为更多的形状(图元),影响后面的插值结果,例如可以将一个复杂的图形,转换为一个大规模旋转三角面片的组合图形,然后进行一个几何着色器的分片过程。

 

裁剪:

将处于屏幕与屏幕外直接的三角形进行裁剪。

 

光栅化阶段:

视口变换(Direct龙书是写在光栅化阶段,但事实上在透视投影变换矩阵中就进行了视口变换):

将齐次裁剪空间的X,Y坐标对应在规格化设备坐标中(NDC)

 

背面剔除:

将背面的三角形踢出渲染流程。 

 

顶点属性插值:

通过顶点,为三角形内部像素点进行插值,便于附加纹理,颜色等数据。

注意要使用透视校正插值,因为在3D空间内,纹理坐标与3D线段是线性相关的,但投影到屏幕,就变成了非线性相关,所以要计算相对应的非线性插值。

 

像素着色器阶段:

对每个像素的颜色进行计算,包括光照,纹理等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值