Я пытаюсь создать шейдер постобработки, используя этот урок:
но проблема в том, что мой проект использует шейдеры по умолчанию вместо шейдеров фреймбуфера (цвет инвертируется, все цвета вершин красные, поэтому вывод должен быть синим)
Я предполагаю, что что-то в процессе рисования испорчено, но я не знаю это не то.
Вот код:
while (!glfwWindowShouldClose(window))
{
glClear(GL_DEPTH_BUFFER_BIT);
glClear(GL_COLOR_BUFFER_BIT);
glBindFramebuffer(GL_FRAMEBUFFER, fbo);// fbo is framebuffer object
glEnable(GL_DEPTH_TEST);
t += 0.0002f; // not important
cube.update(verts, cube.rotmesh(t, o)); // modifies elements in verts (where vertices are stored)
glUseProgram(program2); // program2 is the framebuffer shader
glBindBuffer(GL_ARRAY_BUFFER, vbo); //
glBufferSubData(GL_ARRAY_BUFFER, 0, verts.size()* 4,&verts[0]); // sends the vertice data
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
glBindVertexArray(recta); // rectangle vertex array object (for the rectangle texture)
glDisable(GL_DEPTH_TEST);
glBindTexture(GL_TEXTURE_2D, fbt); // fbt is framebuffer texture
glDrawArrays(GL_TRIANGLES, 0, 6); // should draw rectangle but draws random triangles
glfwSwapBuffers(window);
glfwPollEvents();
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... -dont-work
Мои шейдеры постобработки в OpenGL не работают [закрыто] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Текстура цветового буфера OpenGL для постобработки с использованием неправильного шейдера?
Anonymous » » в форуме C++ - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-