Я хочу визуализировать цветную текстуру, заполняя буфер глубины. Затем я хочу сделать что-то еще для другой текстуры, но выполнить проверку глубины в буфере глубины из первого рендеринга.
Мне не интересно записывать упакованные значения глубины в цветную текстуру, я хочу сохранить существующий заполненный буфер глубины от первого рендеринга. Все в OpenGL ES 2.0 через LibGDX
Поэтому у меня есть FBO с буфером глубины.
Я полагаю, что мой запрос действительно меняет COLOR_ATTACHMENT, очищает буферы глубины? Если нет, у меня должна быть другая проблема где-то в моем коде :(
Проблема была вызвана некоторым поведением libgdx, которого я не ожидал. Libgdx RenderContext выполнял этот вызов "Gdx.gl.glDisable(GL20.GL_DEPTH_TEST)";
Libgdx ModelBatch сам создает экземпляр libgdx RenderContext, если он не предоставляется. Когда begin вызывается в экземпляре ModelBatch, также вызывается в renderContext. Но только если пакет создал контекст сам. В начале RenderContext он отключает и отключает многие функции gl, включая проверку глубины.
Решение состоит в том, чтобы сделать экземпляр RenderContext и передать его на ваши модели. Затем оберните обе партии модели в начале вызова к контексту рендеринга. Помня о повторном включении теста глубины gl перед вызовом партий.
glClear()
который включаетGL_DEPTH_BUFFER_BIT
.