Неужели кто-нибудь сделал это успешно? Кажется, какой индексный формат я использую в буфере рендеринга трафарета glCheckFramebufferStatus(...)
возвращает GL_FRAMEBUFFER_UNSUPPORTED
. Я успешно привязал буфер глубины \ color render, но всякий раз, когда я пытаюсь сделать то же самое с моим буфером трафарета, я получаю (как я уже говорил) GL_FRAMEBUFFER_UNSUPPORTED
.Связывание буфера визуализации трафарета с буфером кадров в opengl
Вот фрагменты моего кода:
// Create frame buffer
GLuint fb;
glGenFramebuffers(1, &fb);
// Create stencil render buffer (note that I create depth buffer the exact same way, and It works.
GLuint sb;
glGenRenderbuffers(1, &sb);
glBindRenderbuffer(GL_RENDERBUFFER, sb);
glRenderbufferStorage(GL_RENDERBUFFER, GL_STENCIL_INDEX8, w, h);
// Attach color
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, cb, 0);
// Attach stencil buffer
glBindFramebuffer(GL_FRAMEBUFFER, fb);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, rb);
// And here I get an GL_FRAMEBUFFER_UNSUPPORTED when doing glCheckFramebufferStatus()
Любые идеи?
Примечания: Цвет прикрепленное это текстура, а не renderbuffer
+1 Хм я думаю, что я пробовал, но не получилось, однако он работает на моей карточке ATI у себя дома, если я заработаю на моей nvidia на работе, я дам ваш ответ зеленый :) –
@ViktorSehr: Возможно, это не трафарет; какой формат изображения вы используете для своей текстуры? –
Пробовал все обычные форматы (GL_RGBA8, ..16, ..32F) –