d3d 中的投影矩阵的推导过程

发布网友 发布时间:2022-04-23 05:59

我来回答

2个回答

热心网友 时间:2023-10-17 21:07

这个东西重要么?如果不是考试的话,和东西基本上不需要你自己写。而且opengl和d3d都是一样,没有本质区别。他们都是采用矩阵对当前的三维坐标进行坐标系转换。比如常用的localtoworld,worldtocarmer carmertoscreen 三个转换过程,你说的投影变换就是从三维转换成二维的过程,对应carmertoscreen。他是采用第四维的w值对你的xyz进行降维。这个都属于数学范畴,没必要深究。懂得原理就成。

热心网友 时间:2023-10-17 21:08

左手坐标系透视投影:
D3DXMATRIX * D3DXMatrixPerspectiveFovLH(
__inout D3DXMATRIX *pOut,
__in FLOAT fovy,
__in FLOAT Aspect,
__in FLOAT zn,
__in FLOAT zf
);

输出矩阵如下:
xScale 0 0 0
0 yScale 0 0
0 0 zf/(zf-zn) 1
0 0 -zn*zf/(zf-zn) 0

where:
yScale = cot(fovY/2)
xScale = yScale / Aspect

具体数学推导过程较复杂,看下面参考资料。百度一下各种有追问我看了下你给的网站,那是opengl 的推导原理 , 关于d3d的呢 。请不要把 dx开发文档上的东西copy 给我, 谢谢。如果回答正解,我会给您额外的分的谢谢。ps:如果我搜得到原理我就不会提问了额。

参考资料:http://hi.baidu.com/twjblog/item/cbbcf213c4b5c0f5ddeeca2c

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com