Matrix 在HLSL中访问矩阵的成员

Matrix 在HLSL中访问矩阵的成员,matrix,direct3d,hlsl,Matrix,Direct3d,Hlsl,我对使用Direct3D和HLSL有点陌生,我想知道以下几点:如何访问其中一个着色器函数中的矩阵成员。在我看来,它应该是点运算符,以及之后的一些东西,就像向量一样。然而,如果我使用圆点,我不确定我会在圆点后写下什么。访问第二行和第三列的成员是否类似于.m12?假设您是matrix float4x4 myTransform; 您可以访问基于1的成员,例如m11到m44,如: float member = myTransform._11; float member = myTransform._4

我对使用Direct3D和HLSL有点陌生,我想知道以下几点:如何访问其中一个着色器函数中的矩阵成员。在我看来,它应该是点运算符,以及之后的一些东西,就像向量一样。然而,如果我使用圆点,我不确定我会在圆点后写下什么。访问第二行和第三列的成员是否类似于.m12?

假设您是matrix

float4x4 myTransform;
您可以访问基于1的成员,例如m11到m44,如:

float member = myTransform._11;
float member = myTransform._44;
或以零为基础:

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

假设你的矩阵是

float4x4 myTransform;
您可以访问基于1的成员,例如m11到m44,如:

float member = myTransform._11;
float member = myTransform._44;
或以零为基础:

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

给猫传单的答案增添了色彩。你也可以使用零数组的语法,就像你在C++中所期望的那样获得矩阵成员。
float4x4 myMatrix;
float x = myMatrix[0][1];

给猫传单的答案增添了色彩。你也可以使用零数组的语法,就像你在C++中所期望的那样获得矩阵成员。
float4x4 myMatrix;
float x = myMatrix[0][1];