首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象在使用JOML时是周旋转的。

对象在使用JOML时是周旋转的。
EN

Stack Overflow用户
提问于 2020-11-01 11:36:59
回答 1查看 223关注 0票数 0

我正在尝试使用LWJGL3创建一个3D引擎,我一直在关注这个问题:

当旋转一个对象时,它会这样做:

四边形应该在中间,因为我没有改变x坐标,但它不是。实际上,我尝试用LWJGL2的旧实用程序jar和四边形在其轴上旋转,而不是在中间的某种轨道上(顺便说一下,我正在使用最新版本的JOML)。

当我在google上搜索这个问题时,我:

  1. 什么也不懂。
  2. 我理解的东西不能工作(比如更新JOML)

下面是生成转换矩阵的代码:

代码语言:javascript
复制
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;
}

以下是顶点着色器的代码:

代码语言:javascript
复制
#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);
}

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-01 20:09:10

我刚发现问题出在哪里。

在这里我的四坐标:

代码语言:javascript
复制
float[] vertices = {
        -0.5f, 0.5f, -1f,
        -0.5f, -0.5f, -1f,
        0.5f, -0.5f, -1f,
        0.5f, 0.5f, -1f
};

所以我把它们改成:

代码语言:javascript
复制
float[] vertices = {
        -0.5f, 0.5f, 0f,
        -0.5f, -0.5f, 0f,
        0.5f, -0.5f, 0f,
        0.5f, 0.5f, 0f
};

它终于起作用了,但不知道为什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64631440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档