首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D3D9 HLSL将我的大脑矩阵

D3D9 HLSL将我的大脑矩阵
EN

Stack Overflow用户
提问于 2011-01-27 15:03:00
回答 1查看 456关注 0票数 0

我正在向你们所有的Direct3D专家寻求帮助。坦率地说,HLSL的一个非常奇怪的行为让我发疯。这是我指定矩阵的方式。

现在我的问题是D3DX 9的功能:

D3DXMatrixOrthoOffCenterRH和其他人...

它们是否返回以下形式的矩阵: v‘=v*M // Column major

或v‘=M*v //行长?

我注意到D3DXMatrixTrnaslate在major列中,我假设所有函数都是一样的。

现在,D3DX项目和非项目函数是否采用上述函数返回的相同形式?

有人经历过HLSL矩阵乘法的疯狂吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-07-14 23:13:47

我就长话短说。RH函数返回column major (http://en.wikipedia.org/wiki/Column_vector,用于参考)矩阵,并且不是HLSL (或适当优化的集合)着色器的首选布局,因为它们不能使用点积执行向量的3D变换。因此,在上传到着色器常量内存之前,请使用LH或row-major (V'= M* V,实际上)布局或至少转置。

要获得实际操作示例,请查看DirectX文档,查找D3DXMatrixLookAtLH()和D3DXMatrixLookAtRH()。在该页面上给出了矩阵的布局,您可以比较布局,并了解为什么用X,Y,Z,1向量对每行进行dot4‘分别对X,Y,Z和W执行仿射变换(假设您使用LH/行较多矩阵)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4813607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档