首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

在DX9中,怎么实现一个D3DXVECTOR3与一个三行三列的矩阵相乘

2012-02-22 
在DX9中,如何实现一个D3DXVECTOR3与一个三行三列的矩阵相乘?有一个D3DXVECTOR3 vPos;的三维向量。有一个D3D

在DX9中,如何实现一个D3DXVECTOR3与一个三行三列的矩阵相乘?
有一个D3DXVECTOR3 vPos;的三维向量。
有一个D3DXMATRIX matProj;的4X4投影矩阵。
我想让这个三维向量只与4X4矩阵的左上角的3X3矩阵相乘。
1、用D3DX提供的现成函数,能实现吗?
2、在VERTEX SHADER中HLSL能实现吗?
谢谢

[解决办法]
哪里一定要三维向量只与4X4矩阵的左上角的3X3矩阵相乘吗?
一般在 shader里都是这样写的,mul (float4(vPos, matProj));
[解决办法]
shader里可以支持大矩阵转换为小矩阵,比如

(float3x3)M, M为float4x4的矩阵。

如果dx不能这样转换,可以自己转换,取出4x4矩阵中的左上3x3元素生成一个新矩阵即可。或者把3维向量用4维齐次坐标来表示

热点排行