繁体   English   中英

Java Matrix4f.transform 等效于 GLM?

[英]Java Matrix4f.transform equivalent in GLM?

在 Java 的 OpenGL 中,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) )。 mat4()构造一个未初始化的矩阵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM