|
发表于 2013-5-31 22:18:22
|
显示全部楼层
本帖最后由 dana9919 于 2013-5-31 22:24 编辑
/*
关于GL 与DX 中透视矩阵的不同点:fovY = width/height ,fAspect是摄像机镜角,90度即四分之派
where:
yScale = cot(fovY/2)
xScale = yScale / aspect ratio
DX中为
---------------------------------------------
xScale 0 0 0
0 yScale 0 0
0 0 zf/(zn-zf) -1
0 0 zn*zf/(zn-zf) 0
---------------------------------------------
GL中为:
xScale 0 0 0
0 yScale 0 0
0 0 (zn+zf)/(zn-zf) -1
0 0 2*zn*zf/(zn-zf) 0
其它都一样,math.h的三角函数全是radian,
--------------------
*/
自己乘下矩阵就知道了
我上次写给自己的一段备忘找不到了,本来还能说的全面一点,应该说, 过 mxWVP后, x y 是屏上位置的比例缩放,w 是深度(离摄像机的距离),z比较搞一点
d3d与gl中乘出来的 z 值不一样,相同的是z/w是深度与灰度的转换,不知道我记得对不对,z 应该是标识了
模型的scale
|
|