c++ - Qt 中的 OpenGL 不绘制红色方 block

标签 c++ qt opengl glulookat

我正在尝试使用 QGLWidget 在 Qt 应用程序中使用 OpenGL。

我做了一个 QGLWidget 等的子类,我想我会测试它是否有效。

但是,下面的代码并没有像我预期的那样工作:

void MyGLWidget::paintGL() {
  gluLookAt(0,0,-10,0.5,0.5,0,0,1,0);
  glClear(GL_COLOR_BUFFER_BIT);
  glColor3f(1,0,0);
  glBegin(GL_POLYGON);
  glVertex3f(0,0,0);
  glVertex3f(0,1,0);
  glVertex3f(1,1,0);
  glVertex3f(1,0,0);
  glEnd();
}

我想象这会做的是看一个红色方 block 的中心。但是相反,当我运行它时,它似乎非常短暂地看了看正方形的中心,然后显示就变成了黑色。

我做错了什么吗?我没有在其他地方做任何 OpenGL。上面的函数是子类中唯一的 OpenGL 代码(目前 ::resizeGL()::initializeGL() 中没有任何内容)。

最佳答案

我认为您需要设置 OpenGL 视口(viewport)。 SDK中有一些Qt+OpenGL的例子。快来看看吧!

关于c++ - Qt 中的 OpenGL 不绘制红色方 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10987096/

相关文章:

qt - 如何从 Qt 5.5 git 源构建 qtwebengine

java - 将 PNG 加载到 OpenGL 性能问题 - Java 和 JOGL 比 C# 和 Tao.OpenGL 慢得多

c++ - 渲染具有相同 z 顺序的透明 3d 形状(四边形)

c++ - OpenMP 与 boost::directory_iterator 并行

c++ - 如何从 3D 表面网格中删除自相交三角形?

c++ - 在方法激活时具有两个不同实例的对象

c++ - 在 C++ 中为公共(public)类变量声明两种或多种类型

c++ - 为什么Qt图表示例不删除动态分配的变量

c++ - src/walletdb.h :96:1: error: expected class-name before ‘{’ token

opengl - 图形管道的哪些部分是使用 CPU 和 GPU 完成的?