在HLSL

时间:2017-06-12 04:23:40

标签: matrix direct3d hlsl

我使用Direct3D和HLSL有点新,我想知道以下内容:如何在其中一个着色器函数中访问矩阵的成员。在我看来它应该是点运算符和之后的一些东西,就像向量一样。但是,如果我要使用它,我不确定我会在点之后放下什么。是否可以像.m12一样访问第2行和第3列的成员?

2 个答案:

答案 0 :(得分:2)

加入catflier的答案。您也可以像在C ++中一样使用数组下标语法(基于零)来获取矩阵成员。

float4x4 myMatrix;
float x = myMatrix[0][1];

答案 1 :(得分:1)

假设你的矩阵是

float4x4 myTransform;

您可以访问基于1的成员(例如m11到m44),如:

float member = myTransform._11;
float member = myTransform._44;

或零基于:

float member = myTransform._m00;
float member = myTransform._m33;