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

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

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

PA3UJIb
Потому что иначе вообще чёрный экран выходит :) надо думать...
Но заменил на GL_DEPTH_STENCIL_ATTACHMENT.


#16
13:05, 20 дек. 2017

я угадаю код с пяти строчек :)

#17
13:06, 20 дек. 2017

А что сообщает glCheckFramebufferStatus ? Может ещё какая ошибка?

#18
13:08, 20 дек. 2017

Может тут что-то с форматом текстуры? Хотя для GL_DEPTH24_STENCIL8 и нужно RGBA, да?

#19
13:11, 20 дек. 2017

Daniil Petrov
> glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, screenWidth, screenHeight, 0, GL_RGBA,
> GL_UNSIGNED_BYTE, nullptr);

Текстура глубины не так создается.

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

0xc0de
> Текстура глубины не так создается.
А как?

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

Daniil Petrov

Ошибка в InternalFormat и Format

PS: Например GL_DEPTH24_STENCIL8 и GL_DEPTH_STENCIL соответственно

#22
13:22, 20 дек. 2017

0xc0de
Премного благодарен! Всё заработало.

#23
13:26, 20 дек. 2017

Daniil Petrov
И напоследок вопрос: для glTexImage2DMultisample нужен только InternalFormat, всё прекрасно, но для glTexImage2D в качестве Format что ставить при значении GL_DEPTH_STENCIL в InternalFormat?

#24
2:48, 21 дек. 2017

Думал, что в
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH24_STENCIL8, screenWidth, screenHeight, 0, GL_DEPTH_STENCIL, GL_UNSIGNED_BYTE, nullptr);
устанавливаю неправильно формат, но в доках говорят, что всё правильно.  Но при рендеринге выходит чёрный экран.

#25
2:54, 21 дек. 2017

Поковырялся ещё в интернете и пришлось GL_UNSIGNED_BYTE заменить на GL_UNSIGNED_INT_24_8, всем спасибо за внимание!

#26
3:44, 21 дек. 2017

Проверял бы статус фрембуфера и такие ошибки сразу бы видел. Плюс на этапе отладки можно и контекст с debug_output создать

#27
6:36, 21 дек. 2017

А как мне теперь эту текстуру читать в шейдере? Я правильно понял, что Stencil нечитаем и передаются только данные Depth?
Дальше: 24 бита - это 3-байтное число со значением глубины, так? Как мне его прочитать? И в каких диапазонах оно вообще лежит?
Для начала хочу для проверки вместо картинки вывести на экран буфер глубины.

#28
9:08, 21 дек. 2017

Daniil Petrov
> Может тут что-то с форматом текстуры? Хотя для GL_DEPTH24_STENCIL8 и нужно
> RGBA, да?
нет. это флоат плюс инт.

#29
9:12, 21 дек. 2017

Daniil Petrov
> пришлось GL_UNSIGNED_BYTE заменить на GL_UNSIGNED_INT_24_8

Вообще для таких целей нужно использовать glTexStorage

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

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