GLM中的Java Matrix4.transform等价物

Java Matrix4f.transform equivalent in GLM?

本文关键字:transform 等价物 Matrix4 Java 中的 GLM      更新时间:2023-10-16

在OpenGL for Java中,Matrix4f有一个transform((方法。我试图看一个使用这个的例子,但想把它翻译成使用GLM。但我在GLM中找不到transform((的等价物,也不知道transform(((到底做了什么。

例如:

在Java中:

Vector4f direction = new Vector4f(x, y, z, 1);
Matrix4f rotationMatrix = new Matrix4f();
… set rotationMatrix …
Matrix4f.transform(rotationMatrix, direction, direction);

在C++中使用GLM:

vec4 direction = vec4(x, y, z, 1);
mat4 rotationMatrix = mat4();
… set rotationMatrix …
??? What to use instead of transform() ???

GLM提供*-运算符。它可以像OpenGL着色语言(GLSL(中的运算符一样使用,例如:

vec4 direction = vec4(x, y, z, 1.0f);
mat4 rotationMatrix = mat4(1.0f);
direction = rotationMatrix * direction;

注意,如果你想构造一个恒等矩阵,那么你需要将一个标量(1.0(传递给mat4(例如mat4(1.0f)(的构造函数。CCD_ 4构造了一个未初始化的矩阵。