小编Dab*_*abo的帖子

使用 fbo 和纹理进行离屏渲染时出现黑屏

我正在 mac os x (10.12) 上开发一个简单的离屏渲染应用程序,但总是出现黑屏。我确认着色器编译和链接没有问题,将纹理更改为单一颜色也可以。然后我注释了有关深度信息相关的代码,但没有效果。单步调试时,没有发现glGetError返回错误。以下是代码,请问有什么问题吗?

GLuint program;
if (compile_link_shader(vertex_shader_source, fragment_shader_source, &program) < 0) {
   base_error_log("call compile_link_shader failed\n");
   return -1;
}
glViewport(0, 0, target->width, target->height);

GLuint vao, vbo, ibo, loc_attr;
glGenVertexArrays(1, &vao);
glGenBuffers(1, &vbo);
glGenBuffers(1, &ibo);

glBindVertexArray(vao);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);

glBufferData(GL_ARRAY_BUFFER, sizeof(pos_coord), pos_coord, GL_STATIC_DRAW);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(element_index), element_index, GL_STATIC_DRAW);

loc_attr = _static_cast(GLuint) glGetAttribLocation(program, "vertexPosition");
glVertexAttribPointer(loc_attr, 2, GL_FLOAT, GL_FALSE,
                          4 * sizeof(GLfloat), _static_cast(GLvoid*) (0 * 2 * sizeof(GLfloat)));
glEnableVertexAttribArray(loc_attr);

loc_attr = (GLuint) glGetAttribLocation(program, "textureCoordinate");
glVertexAttribPointer(loc_attr, 2, GL_FLOAT, GL_FALSE,
                          4 …
Run Code Online (Sandbox Code Playgroud)

c opengl macos textures framebuffer

3
推荐指数
1
解决办法
3566
查看次数

标签 统计

c ×1

framebuffer ×1

macos ×1

opengl ×1

textures ×1