Войти
ПрограммированиеФорумГрафика

OpenGL :: Рендер глубины в текстуру

Страницы: 1 2 3 4 5 6 Следующая »
#0
9:10, 20 дек. 2017

Подскажите, пожалуйста, как мне привязать текстуру к буферу глубины?
glFramebufferTexture2D привязывается только к FRAMEBUFFER, а глубина со стенсилом (GL_DEPTH24_STENCIL8) рендерятся в RENDERBUFFER.


#1
9:11, 20 дек. 2017

читай спеку, там всё есть

#2
9:14, 20 дек. 2017

Daniil Petrov
рендерь глубину со стенсилом в текстуру, а не в renderbuffer

#3
9:17, 20 дек. 2017

innuendo
А можно наколку, по какой конкретно теме гуглить?

MrShoor
А как я ей затолкаю потом в основной рендер?

#4
9:20, 20 дек. 2017

Daniil Petrov
> А как я ей затолкаю потом в основной рендер?
Кому ей то? Формулируй свои мысли яснее.

#5
9:23, 20 дек. 2017

Daniil Petrov
> А можно наколку, по какой конкретно теме гуглить?
https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_frameb… er_object.txt

#6
9:24, 20 дек. 2017

MrShoor
У меня рендербуфер привязан к рендерингу сцены:

glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, rbo);
если я заменю его на текстуру, как мне компенсировать это дело?
#7
9:28, 20 дек. 2017

Daniil Petrov

погугли пример от ATI/AMD называется Framebuffer, там всё чётко по понятиям

#8
9:34, 20 дек. 2017

Daniil Petrov
> если я заменю его на текстуру, как мне компенсировать это дело?

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, tbo, 0);
Может быть так?
#9
11:07, 20 дек. 2017

MrShoor
Не, не помогает!
Как я понял, нужно фреймбуфер с глубиной-стенсилом приаттачить к основному фреймбуферу :) рендербуфер с этим делом приаттачивался именно к нему.
Но вот как?

#10
12:10, 20 дек. 2017

Daniil Petrov
> Как я понял, нужно фреймбуфер с глубиной-стенсилом приаттачить к основному
> фреймбуферу :)
Фреймбуфер к фреймбуферу аттачить нельзя. Нужно либо копировать текстуры, либо писать шейдер, в него передавать текстуру, и из этой текстуры рисовать уже в основной фреймбуфер.

#11
12:12, 20 дек. 2017

Daniil Petrov
Вот тут есть немного.
https://github.com/glcoder/gl33lessons/blob/wiki/Lesson06.md
Правда, не особо подробно. В общем, искать по теме "shadow map"
Отрисовываешь интересующие тебя объекты в текстуру формата "GL_DEPTH_COMPONENT" соответсвующим шейдером, а затем эту глубину используешь для своих расчетов

#12
12:21, 20 дек. 2017

MrShoor
Я уже понял и убрал создание отдельного фреймбуфера для глубины и стенсила.
Не оптимизированный код выглядит уже вот так:

+ Показать

Чухаю, что уже вот-вот где-то, но поймать пока не могу :)
#13
12:40, 20 дек. 2017

«Глубина-глубина, я не твой, отпусти меня, глубина»

#14
12:50, 20 дек. 2017

А почему в качестве аттачмента формат указан?

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH24_STENCIL8, GL_TEXTURE_2D, depthStensil, NULL);

Там же вроде GL_DEPTH_STENCIL_ATTACHMENT указывать надо, не?
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glFr… Texture2D.xml

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.