您的位置:首页 > Web前端

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

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

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

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

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

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

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

其实还有另外一种棱柱的视域,六个面平行于坐标轴,这种视域,通过平行和防缩的方法把物体投影到单位立方体中(通常称为正交投影),再最终转换位屏幕坐标。我们在3DMAX中看到的顶视图,底视图等都属于这一类投影。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文档 buffer