Рисование в FrameBuffer игнорирует тест глубины

Я рисую свою сцену в текстуре с помощью FBO и считываю пиксель, чтобы выбрать свой объект.

Проблема в том, что прорисовка текстуры игнорирует глубину Слева - настоящая сцена, а справа - текстура

Слева - сцена, а справа - текстура (сохраненная в файл для отладки). Как видите, две плоскости расположены одна над другой, а та, что впереди, направлена ​​вверх. хотя по текстуре все наоборот. и это заставляет пользователя выбирать плоскость на заднем плане, когда он видит другую плоскость.

Я пытался включить все, о чем думал, но, похоже, что-то упустил.


person Raziza O    schedule 14.05.2014    source источник
comment
есть ли у FBO буфер глубины? если нет, то нет глубины, с которой можно было бы проверить   -  person ratchet freak    schedule 14.05.2014
comment
Также не забудьте включить тест глубины glEnable(GL_DEPTH_TEST) и запись глубины glDepthMask(GL_TRUE).   -  person glampert    schedule 14.05.2014
comment
Я тоже пробовал. Но все равно я получаю те же результаты.   -  person Raziza O    schedule 15.05.2014
comment
храповой урод - как мне это сделать? Сегодня я создаю текстуру, а затем буфер кадра - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_uintFBTex, 0);. Могу ли я добавить к той же текстуре буфер глубины?   -  person Raziza O    schedule 15.05.2014
comment
Решил это созданием буфера рендеринга для глубины.   -  person Raziza O    schedule 15.05.2014


Ответы (1)


Благодаря храповому уроду,

Я понял, что пропустил буфер глубины :)

Мне просто нужно было создать буфер рендеринга для компонента глубины и прикрепить его к объекту буфера кадра.

person Raziza O    schedule 15.05.2014