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中看到的顶视图,底视图等都属于这一类投影。
这个最终生成的立方体又是怎么样转换为屏幕坐标呢?
首先,在D3D中我们可以设置,立方体处于屏幕缓冲区的位置,包括宽,高,起始位置等。而屏幕缓冲区是和屏幕坐标相对应的。
其次,我们记录下,每个顶点的z值,到Z buffer中。
最后,我们比较z值,如果A物体被B物体遮住,那么A就不用进行绘制了。
通过光栅化和纹理映射,我们得到了最终在屏幕缓冲区上的像素信息。
其实还有另外一种棱柱的视域,六个面平行于坐标轴,这种视域,通过平行和防缩的方法把物体投影到单位立方体中(通常称为正交投影),再最终转换位屏幕坐标。我们在3DMAX中看到的顶视图,底视图等都属于这一类投影。
相关文章推荐
- D3D9 SDK文档笔记3---一切从头开始(2)
- D3D9 SDK文档笔记2---一切从头开始(1)
- D3D9 SDK文档笔记6---视锥体
- D3D9 SDK文档笔记4---一切从头开始(3)
- VR系列——Oculus Audio sdk文档:二、Oculus音频SDK指南(6~8)——平台笔记,中间设备支持以及Oculus硬件功能
- Django使用Python操作数据库 --Django 1.8.2 文档(中文)部分笔记
- Linux运维笔记-文档总结-永久更改文件SELINUX安全上下文和管理SELINUX布尔值
- ant学习笔记(四)ant整合javadoc直接生成java文档api并将其打包之后上传到FTP服务器上面
- Linux运维笔记-文档总结-sort用法和uniq用法
- DirectShow SDK笔记【关于DirectShow(3)】(转载)
- 算法笔记_104:蓝桥杯练习 算法提高 新建Microsoft Word文档(Java)
- 百度地图SDK和百度定位SDK的使用(笔记)
- 学习笔记-斯坦福iOS7-第十二课:文档和Core Data
- jQuery文档学习笔记
- Jersey 2.22.2 官方文档第10章学习笔记
- 微信JS-SDK说明文档【申明:来源于网络】
- 银联 支付宝sdk+demo+文档 支持64位
- 看delphi for php的帮助文档作笔记(一)
- jQuery学习笔记:文档处理
- tornado 文档阅读笔记