在 HLSL 中访问矩阵的成员

Accessing members of a matrix in HLSL

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

假设你的矩阵是

float4x4 myTransform;

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

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

或基于零的:

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

添加到 catflier 的回答中。您还可以像在 C++ 中期望的那样使用数组下标语法(从零开始)来获取矩阵成员。

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