【问题标题】:old JOGL, order of transformation旧的 JOGL,转换顺序
【发布时间】:2015-07-04 10:24:22
【问题描述】:

我必须解决一个问题,但我意识到它有点老派代码..

我需要写下从 1 到 4 的变换顺序以及 pruple 顶点的结果。有人可以帮我检查它是否正确,如果不正确 - 为什么?

我很难找到答案并 100% 确定它是正确的。

我认为是正确的: 1.从底层开始,先取MODELVIEW,再取PROJECTION - 但我不确定我做得对...

编辑,代码重写为文本:

gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glTranslatef(-1, -1, -0);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glScalef(2, 1, 3);
gl.glRotatef(-90, 0, 0, 1);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glScalef(2, 3, 1);


gl.glBegin(GL.GL_QUADS);
gl.glColor3f(0, 0, 1);
gl.glVertex3f(-2, -2, -2);
gl.glColor3f(1, 1, 0);
gl.glVertex3f(2, 1, 3);
gl.glColor3f(1, 0, 1);
gl.glVertex3f(1, 1, -2);
gl.glColor3f(0, 1, 0);
gl.glVertex3f(-1, 1, 2);
gl.glEnd();

按顺序写下变换,并写出每次变换紫色顶点的坐标变化。

变换 1:________________ 坐标 x:_______ y:_______ z:_______

变换 2:________________ 坐标 x:_______ y:_______ z:_______

变换 3:________________ 坐标 x:_______ y:_______ z:_______

变换 4:________________ 坐标 x:_______ y:_______ z:_______

【问题讨论】:

  • 这里的一般偏好是代码直接出现在问题中(因此它是可搜索的/安全的/不会变得不可访问)。介意拉进去吗?
  • 变换以与其规范相反的顺序应用于顶点。例如,请参见此处:stackoverflow.com/questions/25622381/…
  • 这种任务对我来说似乎很愚蠢(除了史前 GL 本身)。在挑剔模式下,我会回答只有 两个 变换(基于这些矩阵)在固定功能管道中一个接一个地应用于顶点位置:模型视图一个,和投影一。

标签: java opengl transformation jogl glrotate


【解决方案1】:

问题解决了

  • 应该从模型变换开始,然后投影,总是从底部开始
  • 从底部应用变换

另外,我不小心使用了错误的坐标..

~谢谢你的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多