网站首页   公司介绍   行业新闻   技术文章   应用示例   产品中心   在线留言   联系我们
3D 绘图原理 (3D Graphics Pipeline ) 之二
时间:2015-5-5 20:20:55,点击:0

 3.2  Viewport Transformation & Clipping & Culling


光照完成之后,接着又是一个坐标系的转换,这次是从视点坐标转换到裁切坐标系(Clip coordinate)再转换到屏幕坐标系(screen coordinate)的过程。

就像在前一个StageTransformation一样,它们有如下的关系:

Eye coordinate  ----------------------------->  Clip coordinate -------------------------> Screen coordinate
              Projection transformation                         Viewport Transformation

Clip coordinate
是将视点坐标进行投影(Projection),还记得第一篇说的吗?在Eye coordinate上,我们的原点就是摄影机,视线方向是-Z轴,加上视角与远近平面,我们创建了一个梯形体的三维空间,近平面(也就是投影平面)是梯形体较小的矩形,远平面是梯形体较大的矩形,而所有在这个梯形体的内的Vertex,就是我们在屏幕上会看见的Vertex。因此超出这个梯形体的场景,都被视点去除(Frustum Culling)掉了。

最后一步是将Clip coordinate的梯形体转换为一个立方体,近平面(梯形体较小的矩形)就是对应到屏幕,其X Y坐标就是屏幕像素的坐标(左下角是0,0)Z坐标则是代表画面的深度(也就是该Vertex离投影面有多远)

为什么我们在投影完之后还要留下Z坐标的值呢?这是因为「Vertex离投影面的距离」可以用来处理三角面间相互遮盖的情形,也就是哪个三角面在前,哪个三角面在后。这个称作Z-buffer的技术会在之后提到。


3.3  Primitive Assembly Triangle Setup

流水线进行到这边,已经把与顶点(Vertex)相关的操作完成了,接下来进行的Primitive Assembly,顾名思义是将Vertex根据Primitive,还原出Mesh结构。还记得之前PrimitiveMesh的概念吧?在之前的流水线中是对于顶点的处理,在这个Stage中将Vertex连结起来,组成点、线、或三角形的单元。

之后,将超出屏幕外的三角面进行裁切(Clipping),想象一个三角形的其中一个顶点在画面外,另外两个顶点在画面内。这时我们在屏幕上看到的就是一个四边形了。因此我们把画面外的部份去掉之后,再将剩下的四边形切成两个小三角形。此外,由三角形的顶点顺序,根据右手定则(right-hand principle)来决定三角面哪一面是正面,哪一面是反面,进行背面去除(Back-face Culling)

以上ClippingBack-face Culling的部份,主要是为了减少处理的三角面数量,不会看到的三角面就不用进行处理。

于是我们得到了一堆三角面,准备拿去做光栅化(Rasterizing)

这个步骤在处理三角形的时侯被称作Triangle Setup。当然,Primitive也可以只是线(lines),那么画出来的图形就没有面,只有线框(wireframe)的图形,但是这并不常见,一般来说三角形还是最常见的。

打印】【关闭
新闻分类  
硬件技术
软件技术
应用技术
产品中心
nVIDIA显示卡
AMD显示卡
外置设备
信号线缆
Matrox迈创显示卡
应用示例
3*1 球面融合
3*3拼接+ 1路回显画面
416 台LCD显示器的庞大电视墙

琛之睿电子 版权所有

本站部分资料来源于网络,仅作为展示之用,版权归原作者所有.如果侵犯了您的权益,请来信告知,我们会尽快删除.

粤ICP备15029931号

HB-VX4,分屏器,扩屏宝,显示宝,识别器,专业卡 ,多屏卡,Quadro,Firepro,k600,v4800,v4900,w9100,w600,k2000,丽台,蓝宝石,MST,主动线