#opengl-es #opengl-es-2.0 #depth-buffer
#opengl-es #opengl-es-2.0 #глубина-буфер
Вопрос:
Простой вопрос OpenGL ES 2.0. Если мне нужно иметь буфер глубины и цвета, должен ли я дважды отображать геометрию? Или я могу просто привязать / присоединить буфер глубины во время рендеринга цветной рамки?
Или для этого мне нужно MRT / render дважды?
Ответ №1:
Это обычный режим работы OpenGL для обновления как буфера цвета, так и буфера глубины во время рендеринга, если они оба существуют и включены.
Если вы выполняете рендеринг в FBO и хотите использовать буфер глубины, вам необходимо прикрепить либо цветную текстуру GL_COLOR_ATTACHMENT0
, либо буфер рендеринга цвета, вызвав glFramebufferTexture2D()
или glFramebufferRenderbuffer()
соответственно. Затем выделите буфер визуализации глубины с glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, ...)
помощью и присоедините его к GL_DEPTH_ATTACHMENT
вызову glFramebufferRenderbuffer()
.
После этого вы можете выполнить рендеринг один раз, и ваши буферы цвета и глубины будут обновлены.