OpenGL:VBO和一个坏GC



我最近尝试过使用VBO。我只是复制粘贴了这个网站的代码

它编译良好,运行良好。然而,我在taskmanager上注意到该程序以50%的CPU使用率运行。这只是一个简单的三角形,没有别的。我原以为它是0%,因为我在glfw3中创建的所有其他程序在空闲时都以0%运行。我知道glfw3中的V-SYNC默认设置为true,但我仍然添加了这行代码来确保glfwSetInterval(GL_TRUE); //sets V-SYNC on,但仍然没有任何更改。

在扰乱了test_vs.glsl之后(我认为这与问题无关):

我更改的代码:

来自

#version 400
in vec3 vp;
void main ()
{
gl_Position = vec4 (vp, 1.0);
}

#version 400
in vec2 vp;
void main ()
{
gl_Position = vec4 (vp, 0, 1.0);
}

并将.cpp代码中顶点的属性改为2D。

再次运行多次Hello Triangle程序,计算机停止并挂起一点--->然后CRAASSH。显卡坏了!(字面意思是哎哟)。计算机自动关闭,我再次尝试重新启动它,我得到了一个充满随机行的屏幕,无法在桌面上继续。

我没有太多关于显卡的信息,但glewGeForce 7300 GT/PCI/SSE2/3DNOW!,并根据glew在支持OpenGL v2.1Windows XP上运行。

我添加的一些扩展:

  • glfwWindowHint(GLFW_SAMPLES, 4);
  • glfwWindowHint(GLFW_OPENGL_CORE_PROFILE, 2);
  • glewExperimental = GL_TRUE;
  • 我给任何与vbo相关的函数加上前缀ARB

我怀疑这是由于缺乏OpenGL extensions support check(这只是一个假设,很可能是我能想到的原因)。但是,这真的是问题所在吗?是简单程序还是其他程序?如果是这样,他们为什么要让这种情况发生?

我只想提一下GeForce 7300不支持OpenGL-4;见鬼,它甚至没有涵盖OpenGL-3的全部支持。不管发生了什么,GPU很可能没有参与其中。因此,即使在GPU上,编写#version 400着色器也无法使用lest。

相关内容

最新更新