我最近尝试过使用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。显卡坏了!(字面意思是哎哟)。计算机自动关闭,我再次尝试重新启动它,我得到了一个充满随机行的屏幕,无法在桌面上继续。
我没有太多关于显卡的信息,但glew
说GeForce 7300 GT/PCI/SSE2/3DNOW!
,并根据glew
在支持OpenGL v2.1
的Windows 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。