OpenGL не рисует ближайший фрагмент к камере - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть сцена с сеткой чайника. Я использую шейдер фрагментации, чтобы осветить его, используя источник света, значение которого равно 10.

Когда сцена отображается в кадровом буфере по умолчанию, все выглядит нормально. ok

Но, если он отображается в пользовательском фреймбуфере, результат выглядит следующим образом: ko

Кажется, OpenGL предпочитает треугольники, определенные "в конце" меша.

Я хочу, чтобы кадровый буфер содержал 16bits floats, чтобы я мог хранить значения больше 1.0.

Извините за мой английский.

1 Ответ

0 голосов
/ 10 ноября 2018

Я забыл добавить визуализацию глубины и очистить ее, используя glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

Для этого добавьте:

GLuint rboDepth;
glGenRenderbuffers(1, &rboDepth);
glBindRenderbuffer(GL_RENDERBUFFER, rboDepth);
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, width(), height());
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, rboDepth);

к реализации фреймбуфера, пока он связан.

...