游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1943|回复: 2

DX转化矩阵的疑问。

[复制链接]

1

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2013-5-29 19:59:09 | 显示全部楼层 |阅读模式
一个3D空间里的pos,经过mvp转化之后就有了一个屏幕空间坐标点, xyzw  这个w是指什么?

0

主题

8

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2013-5-29 21:06:27 | 显示全部楼层
这个向量的坐标是齐次坐标。w代表向量的权重。那就是说(x,y,z,1)和(w*x,w*y,w*z,w)在三维空间里代表同一个点,即(x,y,z)。

33

主题

159

帖子

272

积分

中级会员

Rank: 3Rank: 3

积分
272
QQ
发表于 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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 18:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表