У меня есть собственный фреймбуфер с глубиной и трафаретом:
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, texId, 0);
Следующая операция удаляет глубину и трафарет или только глубину?
glBindFramebuffer(GL_READ_FRAMEBUFFER, fboId);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
glBlitFramebuffer(0, 0, w, h, 0, 0, w, h, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
Что произойдет, если в приведенной выше операции я заменю GL_DEPTH_BUFFER_BIT на GL_STENCIL_BUFFER_BIT?





Если вы вызываете glBlitFramebuffer с помощью GL_DEPTH_BUFFER_BIT, копируется только буфер глубины, а если вы вызываете его с помощью GL_STENCIL_BUFFER_BIT, копируется только буфер трафарета. Если вы хотите скопировать оба буфера одновременно, вам необходимо установить оба бита:
glBlitFramebuffer(0, 0, w, h, 0, 0, w, h,
GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST);