我正在尝试使用LWJGL3创建一个3D引擎,我一直在关注这个问题:
当旋转一个对象时,它会这样做:

四边形应该在中间,因为我没有改变x坐标,但它不是。实际上,我尝试用LWJGL2的旧实用程序jar和四边形在其轴上旋转,而不是在中间的某种轨道上(顺便说一下,我正在使用最新版本的JOML)。
当我在google上搜索这个问题时,我:
下面是生成转换矩阵的代码:
public static Matrix4f createTransformationMatrix(Entity entity) {
Matrix4f matrix = new Matrix4f()
.identity()
.translate(new Vector3f(entity.getX(), entity.getY(), entity.getZ()))
.rotateX((float)Math.toRadians(entity.getRotationX()))
.rotateY((float)Math.toRadians(entity.getRotationY()))
.rotateZ((float)Math.toRadians(entity.getRotationZ()))
.scale(entity.getScale());
return matrix;
}以下是顶点着色器的代码:
#version 450
in vec3 position;
out vec4 out_color;
uniform mat4 projection;
uniform mat4 transformation;
void main()
{
gl_Position = projection * transformation * vec4(position, 1.0);
out_color = vec4(position.y, position.x, -position.x, 0);
}提前感谢!
发布于 2020-11-01 20:09:10
我刚发现问题出在哪里。
在这里我的四坐标:
float[] vertices = {
-0.5f, 0.5f, -1f,
-0.5f, -0.5f, -1f,
0.5f, -0.5f, -1f,
0.5f, 0.5f, -1f
};所以我把它们改成:
float[] vertices = {
-0.5f, 0.5f, 0f,
-0.5f, -0.5f, 0f,
0.5f, -0.5f, 0f,
0.5f, 0.5f, 0f
};它终于起作用了,但不知道为什么。
https://stackoverflow.com/questions/64631440
复制相似问题