gpt4 book ai didi

c++ - GLM 中的 Java Matrix4f.transform 等价物?

转载 作者:行者123 更新时间:2023-11-30 04:42:46 26 4
gpt4 key购买 nike

在 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 Shading Language (GLSL) 中的运算符使用例如:

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

direction = rotationMatrix * direction;

注意,如果你想构造一个 Identity matrix然后您要将单个标量 (1.0) 传递给 mat4 的构造函数(例如 mat4(1.0f))。 mat4() 构造一个未初始化的矩阵。

关于c++ - GLM 中的 Java Matrix4f.transform 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58602634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com