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

[OGL] использование форматов буфера глубины для rt текстуры

Страницы: 1 2 Следующая »
#0
21:58, 6 авг 2009

можно ли для rt текстуры безопасно использовать формат буфера глубины? и, соответственно, ставить такую текстуру в fbo как GL_DEPTH_ATTACHMENT
т.е., например, такие форматы, как:
GL_DEPTH_COMPONENT16
GL_DEPTH_COMPONENT24
GL_DEPTH_COMPONENT32
GL_DEPTH_COMPONENT32F
GL_DEPTH24_STENCIL8
GL_DEPTH32F_STENCIL8
чревато ли это какими-нибудь неприятностями, широкими несовместимостями? в каком формате будут приходить данные при чтении из текстуры?
цель - сэкономить на записи глубины в обычный rt, восстанавливая её потом из depth-текстуры, т.к. глубину в depth-буфер надо писать по-любому

#1
22:04, 6 авг 2009

arabesc
> GL_DEPTH24_STENCIL8

Самое то :)

Ну или GL_DEPTH_COMPONENT24.


В любом случае делай всегда CheckFramebufferStatus. Которые с F - только на новом железе

#2
22:05, 6 авг 2009

arabesc
> в каком формате будут приходить данные при чтении из текстуры?

Ну я восстанавливал из  r

#3
22:11, 6 авг 2009

innuendo
> Которые с F - только на новом железе
конкретный формат не так важен, была бы возможность его использовать...

> Ну я восстанавливал из r
а диапазон значений там какой?

#4
22:13, 6 авг 2009

arabesc
0-1

#5
22:18, 6 авг 2009

здорово
innuendo, Blew_zc - благодарю!

#6
23:21, 6 авг 2009

arabesc
> GL_DEPTH24_STENCIL8
На ATI, по крайней мере на HD3600, D24S8-текстура глючит в нескольких ФБО. Т.к. у меня деферред и нужен стенсил, обошёл через glCopyTexSubImage из D24S8-рендербуфера. А чистый D16 прекрасно работает и как приаттаченная текстура.

#7
4:53, 7 авг 2009

KRIGSSVIN
> На ATI, по крайней мере на HD3600, D24S8-текстура глючит в нескольких ФБО
спасибо, буду знать, где лежат очередные атишные грабли :)

2all: в ogl разрешено одновременно биндить текстуру к сэмплеру и аттачить её же как активный рендер-таргет?
обещаю, что в буфер глубины запись будет запрещена, но depth-тест нужен и чтение из текстуры тоже нужно

#8
9:53, 7 авг 2009

arabesc
>в ogl разрешено одновременно биндить текстуру к сэмплеру и аттачить её же как активный рендер-таргет?
Нет.

#9
10:39, 7 авг 2009

KRIGSSVIN
> На ATI, по крайней мере на HD3600, D24S8-текстура глючит в нескольких ФБО. Т.к.
> у меня деферред и нужен стенсил, обошёл через glCopyTexSubImage из
> D24S8-рендербуфера. А чистый D16 прекрасно работает и как приаттаченная
> текстура.

Да, я слышал про это. Сам работал с D24S8 на NVIDIA. А glCopyTexSubImage не много кушает.

А про D16 - не всегда точности хватит

Про D32 - ставил этот формат - а DEPTH_BITS 24 всё равно было.


Про D32F  -  есть подозрение что скорость упадёт...

#10
10:41, 7 авг 2009

arabesc
> > На ATI, по крайней мере на HD3600, D24S8-текстура глючит в нескольких ФБО
> спасибо, буду знать, где лежат очередные атишные грабли :)

Если бы, у меня наоборот D24S8 работала нормально, а D16 уходила в софтвар (Radeon9600)

#11
10:42, 7 авг 2009

SereG
> Если бы, у меня наоборот D24S8 работала нормально

Были жалобы, когда D24S8 текстуру потом из неё выборку делаешь - глюки. А с renderBuffer - вроде нормально .

#12
10:52, 7 авг 2009

Как писать игры в таких условиях???

#13
14:57, 7 авг 2009

@!!ex
Проверять, проверять и ещё раз проверять.

#14
16:19, 7 авг 2009

KRIGSSVIN
> На ATI, по крайней мере на HD3600, D24S8-текстура глючит в нескольких ФБО.

А ты можешь поподробнее ?

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

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