Как получить доступ к текстуре глубины из других кадровых буферов?
Я использую отложенный рендерер в моей игре. Поэтому первый проход рендеринга состоит в создании альбедо и нормального буфера с использованием нескольких элементов рендеринга и заполнения буфера глубины. Все эти буферы на самом деле текстуры.
Теперь я хочу получить доступ к буферу глубины из других проходов рендеринга, то есть из других кадровых буферов, без изменения текстуры глубины. Я просто хочу прочитать значения глубины. Для этих проходов я в основном рисую полноэкранные четырехугольники и не хочу, чтобы они обновляли текстуру глубины и вычеркивали ее до значений глубины 0.
Как прикрепить данную текстуру глубины к другому фреймбуферу и убедиться, что она только для записи?
1 ответ
Вы можете просто прикрепить один и тот же буфер глубины к другим буферам кадров (это нужно делать только в том случае, если вы хотите использовать тестирование глубины при рисовании ваших легких объемов). Отключить запись глубины для этих проходов (glDepthMask(GL_FALSE)
). Вы также можете привязать буфер глубины (предполагая, что это текстура, а не буфер рендеринга) к текстурному блоку и считывать значения глубины из него в своем шейдере. Единственное, что вы не можете сделать, это читать и писать с одной и той же текстуры одновременно, но вы все равно не хотите этого делать.