渲染正方形时的 OpenGL 黑屏
OpenGL black screen when rendering a square
我正在尝试在Linux上使用openGL和GLFW渲染一个红色方块。但是,下面的代码只是生成一个黑色背景的窗口,我不知道为什么。GLCall 宏仅用于错误检查目的,而不是问题的原因。
int main(){
Window window(1280, 720);
float vertices[] = {-0.5f, -0.5f,
0.5f, -0.5f,
0.5f, 0.5f,
0.5f, 0.5f,
-0.5f, 0.5f,
-0.5f, -0.5f
};
const char* vertexShader = "#version 330 coren"
"layout (location = 0) in vec2 position;n"
"void main(){n"
"gl_Position = vec4(position, 0.0, 1.0);n"
"}";
const char* fragmentShader = "#version 330 coren"
"out vec4 color;n"
"void main(){n"
"color = vec4(1.0f, 0.0f, 0.0f, 1.0f);n"
"}";
GLuint vao;
GLCall(glGenVertexArrays(1, &vao));
GLCall(glBindVertexArray(vao));
GLuint vbo;
GLCall(glGenBuffers(1, &vbo));
GLCall(glBindBuffer(GL_ARRAY_BUFFER, vbo));
GLCall(glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, (void*)0));
GLCall(glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW));
GLuint vshader = glCreateShader(GL_VERTEX_SHADER);
GLCall(glShaderSource(vshader, 1, &vertexShader, NULL));
GLCall(glCompileShader(vshader));
GLuint fshader = glCreateShader(GL_FRAGMENT_SHADER);
GLCall(glShaderSource(fshader, 1, &fragmentShader, NULL));
GLCall(glCompileShader(fshader));
GLuint shader = glCreateProgram();
GLCall(glAttachShader(shader, vshader));
GLCall(glAttachShader(shader, fshader));
GLCall(glLinkProgram(shader));
GLCall(glUseProgram(shader));
while(window.isOpen()){
glClear(GL_COLOR_BUFFER_BIT);
GLCall(glDrawArrays(GL_TRIANGLES, 0, 6));
glfwSwapBuffers(window.getPointer());
glfwPollEvents();
}
return 0;
}
我确信你必须包括glEnableVertexAttribArray(0);
尝试添加:
glEnableVertexAttribArray(0);
后:
GLCall(glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, (void*)0));
相关文章:
- OpenGL Glut显示功能在Mojave上显示黑屏
- Linux 上的黑屏,但 Windows 上不是
- QT Opengl 总是给黑屏
- D3D9创建设备,在Alt选项卡后获得vtable黑屏
- 带 GLUT 的黑屏?
- 每当我使用矩阵乘法时,我都会看到黑屏
- 如何在OpenGL 3.3中修复黑屏输出
- (SDL2) 让对象自身呈现会得到黑屏
- 执行 CUDA 内核时黑屏C++输出正确的结果
- 渲染正方形时的 OpenGL 黑屏
- opengl 3.3 中的黑屏输出
- C ++中的黑屏消失得很快
- 我在SFML SF :: Renderwindow中获得了黑屏
- 代码:: Blocks Console黑屏?没有错误
- OpenCV C++,为什么不使用零功能会出现黑屏
- 在Popscene之后获取黑屏
- FFMPEG到OpenGL纹理黑屏
- 安东的OpenGL你好三角形教程上的黑屏
- OpenGL - FBO在NVIDIA卡上渲染纹理时出现黑屏
- 在某些机器上的OpenGL黑屏(PIXELFORMATDESCRIPTOR/SwapBuffer?)