ZOL上一篇GPU相关介绍的分析(2)

下面是学习和分析Zol《GPU大百科全书》系列的第二篇《凝固生命的光栅化

之所以要光栅化是因为3D的图形最终必须在2D的显示器上表现出来。而要实现这样的转化,一般就是用传统绘画艺术中流行的透视法。其中最常用的是线透法(这是该文作者自造的词,google上没有别人这么说),该文中的解释并不清楚,但查看了维基百科后觉得反而更不适合,所以还是引用该文作者的解释:将物体的一个点全部以连线的方式与眼睛(观察视野)相连,然后再将一块平面置于这些线上,由线穿过平面的投影确定物体在画面中的形态。

在确定观察视野后,就需要通过transform将3D图形的xyz三维坐标向量转化为符合透视关系的二维坐标。由于这样的变化发生在典型的欧几里得几何空间中,因此可以通过方程式的变换完成。整个过程的本质就是坐标变换,其形态类似于照相技术,因此背对观察点的部分也就自然无需渲染了。

在完成了变换过程后,GPU的工作就是调用Vertex Shader或者Unified Shader将需要的顶点一一对应到平面的像素点上。此外,GPU还将通过Z-culling过程将前后遮挡部分去除,至此原本3D的模型就只剩下一幅投影到2D平面上由像素构成的画面了。然而由于Z-culling是在完成了基本光照处理之后才进行,因此还是对整个操作流程造成了不必要的渲染压力,目前可以通过Compute Shader(DX11)加持的Deferred Shading技术将光照过程推后到流水线后端的MTR(多目标渲染)中实现,从而降低前期光栅化的压力。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s