D3DXVec3TransformCoord 的作用是?

Baesky 2010-08-13 01:33:46
D3DXVec3TransformCoord

Transforms a 3D vector by a given matrix, projecting the result back into w = 1.

上面是函数解释:
w是?
vec(x,y,z.w)?
w=1?
...全文
1302 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cy_2010_cy 2010-12-04
  • 打赏
  • 举报
回复
D3DXVec3TransformCoord和D3DXVec3TransformNormal区别很小.

(1)w=1表示点;w=0表示是向量。
(2)D3DXVec3TransfomCoord处理过程如下:
pOut.x = pv.x * pM._11 + pv.y * pM_21 + pv.z * pM_31 + pM_41;
pOut.y = pv.x * pM._12 + pv.y * pM_22 + pv.z * pM_32 + pM_42;
pOut.z = pv.x * pM._13 + pv.y * pM_23 + pv.z * pM_33 + pM_43;
w = 1
(3)D3DXVec3TransformNormal处理过程如下:
pOut.x = pv.x * pM._11 + pv.y * pM_21 + pv.z * pM_31;
pOut.y = pv.x * pM._12 + pv.y * pM_22 + pv.z * pM_32;
pOut.z = pv.x * pM._13 + pv.y * pM_23 + pv.z * pM_33;
w = 0
gamemagic 2010-08-13
  • 打赏
  • 举报
回复
除以W,这不是在投影变换时才有意义么?
antimatterworld 2010-08-13
  • 打赏
  • 举报
回复
w是其次坐标,用于表示verctor代表一个点还是一个向量。
w=1代表vector是个点,w=0代表vector是个向量,平移向量后,向量是没有变化的。
也就是w决定了一个变换中,平移部分是否有效。

w=0就是只让属于线性变换的变换有效。
引力场变动源 2010-08-13
  • 打赏
  • 举报
回复
楼上少了一条,与矩阵相乘以后还会执行一次vec/=vec.w操作,使得运算结果的w也等于1.
没有这最后一步操作的是D3DXVec3TransformNormal
gamemagic 2010-08-13
  • 打赏
  • 举报
回复
把一个3D向量扩展到4D,W用1填充。然后与矩阵相乘

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧