【问题标题】:QT OpenGL not fully rendering cube?QT OpenGL没有完全渲染立方体?
【发布时间】:2020-04-09 05:30:30
【问题描述】:

我正在尝试创建和显示一个 3D 正方形,但由于某种原因,当我渲染它时,它的某些部分丢失了:

void DrawCube::drawCubes(int amount){ 



      glBegin(GL_POLYGON);
        glVertex3f( 1.0, -1.0,  1);
        glVertex3f( 1.0, -1.0, -1);
        glVertex3f( 1.0,  1.0, -1);
        glVertex3f( 1.0,  1.0,  1);
        glEnd();


      glBegin(GL_POLYGON);
        glVertex3f(-1.0, -1.0, -1);
        glVertex3f( 1.0, -1.0, -1);
        glVertex3f( 1.0,  1.0, -1);
        glVertex3f(-1.0,  1.0, -1);
      glEnd();


      glBegin(GL_POLYGON);
        glVertex3f(-1.0, -1.0, 1);
        glVertex3f( 1.0, -1.0, 1);
        glVertex3f( 1.0,  1.0, 1);
        glVertex3f(-1.0,  1.0, 1);
      glEnd();


      glBegin(GL_POLYGON);
        glVertex3f( -1.0, -1.0,  1);
        glVertex3f( -1.0, -1.0, -1);
        glVertex3f( -1.0,  1.0, -1);
        glVertex3f( -1.0,  1.0,  1);
      glEnd();
  }

}

我不是在寻找只给我代码的答案,而是寻找导致这种情况的原因的解释。

【问题讨论】:

  • 那不是原始代码,不是吗?没有法线向量,光照从哪里来?

标签: c++ qt opengl rendering opengl-compat


【解决方案1】:

立方体似乎被投影的远平面剪裁了。当您通过glOrtho 设置投影矩阵时,增加到远平面的距离。
注意,投影矩阵定义了一个视图体积(参见3D projection)。超出查看体积的所有几何图形都将被剪裁。

【讨论】:

    猜你喜欢
    • 2015-08-12
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多