D3D9 SDK文档笔记7---透视投影

来源:互联网 发布:firefly软件下载 编辑:程序博客网 时间:2024/05/21 11:21


有了这个视锥体,我们接下来要做的就是把视锥体投影到一个立方的投影体中了。这个投影体,在D3D的定义中,X的值范围为【-11】,y的值范围为【-11】,z值范围【01】,所以是半个单位立方体。投影,采用的是相似三角形的方法,将视锥体中的物体坐标,转换为在投影体中的坐标。

这个最终生成的立方体又是怎么样转换为屏幕坐标呢?

首先,在D3D中我们可以设置,立方体处于屏幕缓冲区的位置,包括宽,高,起始位置等。而屏幕缓冲区是和屏幕坐标相对应的。

其次,我们记录下,每个顶点的z值,到Z buffer中。

最后,我们比较z值,如果A物体被B物体遮住,那么A就不用进行绘制了。

通过光栅化和纹理映射,我们得到了最终在屏幕缓冲区上的像素信息。

其实还有另外一种棱柱的视域,六个面平行于坐标轴,这种视域,通过平行和防缩的方法把物体投影到单位立方体中(通常称为正交投影),再最终转换位屏幕坐标。我们在3DMAX中看到的顶视图,底视图等都属于这一类投影。
原创粉丝点击