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

Конвертирование текстурных PBR-карт (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
15:54, 9 окт. 2019

lookid - чувак сечет!
Сейчас так в продакшене пакуют?


#31
15:59, 9 окт. 2019

BingoBongo
это я скопировал из презентации крайтека за 2013 год (вроде), про thin g-buffer

#32
16:19, 9 окт. 2019

lookid
Я тут давно где-то видел использование сжатия как YCbCr, не помню, от тебя или нет. Интересно как они обосновывают свой thin gbuffer? Потому что сколько не встречал покадрового анализа рендеринга в разных играх - ни разу подобного не видел. Даже более того, нормали часто хранятся как RG_Float16. Поэтому терзают сомнения в актуальности )

#33
16:23, 9 окт. 2019

BingoBongo
> Интересно как они обосновывают свой thin gbuffer?
экономия memory bandwidth ?

#34
16:26, 9 окт. 2019

innuendo
> экономия memory bandwidth ?
Это логично, разумной ли ценой?

#35
16:31, 9 окт. 2019

Давно висит в разработке статейка, с подходом кодирования в G-Buffer не слоёв а материалов, тоесть вместо того, чтоб передавать albedo + ao + roughness + specular/metalness (+emission) и прочее, передавать:
MaterialID (16 бит)+Lod (4 бита)+ObjTexCoordXY(12x2 бита)+4 бита в резерве
Итого, 48 бит на любой материал.

Технически, объем передаваемых данных примерно такой же как и для классического G-Buffer, с тем исключением что по MaterialId можно вытащить намного больше слоев материала. Из плюсов - наложение материалов происходит в финальном проходе, текстурируется только то, что реально видно.
Из минусов - минусов полно)
Впервые я попробовал это реализовать еще в 2010 на OpenGL 2.1, но тогда не хватало именно биндлесс текстур. С тех пор в интернете видел всего одно упоминание об этой технике, и то, чисто теоретические размышления: http://www.reedbeta.com/blog/deferred-texturing/
Хочется как-то погонять тесты, посмотреть на сколько оправдан такой подход...

#36
16:31, 9 окт. 2019

BingoBongo
> Это логично, разумной ли ценой?
А велика цена?

#37
16:48, 9 окт. 2019

BingoBongo
> > экономия memory bandwidth ?
> Это логично, разумной ли ценой?

это они делали под XBOX/PS3

#38
16:52, 9 окт. 2019

Misanthrope
А что думают специалисты?

innuendo
Тогда все становится обоснованным.

#39
16:53, 9 окт. 2019

BingoBongo

ну как бы всегда можно поиметь плюсы если качество не страдает

#40
17:18, 9 окт. 2019

innuendo
> ну как бы всегда можно поиметь плюсы если качество не страдает
Насколько я понимаю, качество страдает, но на телевизорах с расстояния это не так заметно.

#41
17:19, 9 окт. 2019

BingoBongo
сорри
ну как бы всегда можно поиметь плюсы если качество не страдает сильно

#42
19:11, 9 окт. 2019

Daniil Petrov
> У меня даже карты нормалей во float грузятся
Это уже безумие.
BingoBongo
> rgba8 (albedo, ao)
> rgba8 (normal xy, roughness, metalness)
> float16 (view space z position)
тоже собираюсь перейти на крайтековскую кубмапу.BingoBongo
> YCbCr
У меня было, смысла около нуля.Fantom09
> MaterialID (16 бит)+Lod (4 бита)+ObjTexCoordXY(12x2 бита)+4 бита в резерве
> Итого, 48 бит на любой материал.
Тангент битангент? Как собрался фильтры крутить вообще? Удачи )

#43
(Правка: 20:05) 19:54, 9 окт. 2019

vindast
> Тангент битангент?
А я что-то писал про Depth/Normal?
Это все точно так же передается (хотя и есть варианты), отличия только в передаче "albedo + ao + roughness + specular/metalness", вместо них передается "MaterialID+Lod +ObjTexCoordXY"

Проблемы есть, о чем я и написал, зато это позволит решить такие задачи как - подповерхностное рассеивание (thickness, mfp), или анизотропный материал, можно передать множество слоев для кожи, или 6!!! слоев для рендеринга волос, диснеевские материалы вообще предполагают передачу 16-ти слоев.

При классическом G-Buffer'е предполагается что все объекты сцены будут использовать одну модель освещения, при таком варианте как у меня, безусловно, ценой производительности, можно хоть на каждый пиксель свою модель освещения или эффекта указать. В этом и заключается ее плюс, относительно классической.

vindast
> Как собрался фильтры крутить вообще?
какие фильтры?
на этапе light-pass у тебя нет доступа к соседним, "освещенным" пикселям, в любом случае 90% фильтров применяются уже на постпроцессинге, когда готов кадр. Это опять же никак не связано с указанной техникой, кроме того, что у предлагаемой мной техники есть и тут преимущества. Какие - ну во-первых у меня есть четкие границы каждого материала каждого объекта, тоесть то, что требует поиска разрыва глубины/нормалей у меня уже есть по определению. Тоесть можно элементарно выделить контуры объекта с точностью до 1 пикселя, это как первый шаг алгоритмов MLAA/SMAA, заметь, так же бесплатный.
Если заменить materialID на ObjectID - моя техника ничем не будет отличаться, но как бесплатный бонус - получаешь Select Buffer. И т.д. и т.п.

Просто нужно мыслить чуть шире.

#44
(Правка: 22:11) 22:09, 9 окт. 2019

Fantom09
> какие фильтры?
Я имею в виду что при таком подходе все текстурные фильтры будут работать не так как ты ожидаешь. Это работать нормально не будет, порадит столько артефактов, что глаз выколи. Либо придется делать это все ручками, что убьет весь профит.

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