在 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];
我对使用 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];