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

G-буфер и отложенное освещение

Страницы: 1 2 3 4 Следующая »
#0
12:36, 2 авг. 2018

У меня такой вопрос: при проходе, на котором рендерятся каналы альбедо и нормалей, есть смысл сразу рендерить канал с общенаправленным фоновым освещением?
Или по какой-то причине оно тоже считается отдельно? Если отдельно, то почему?


#1
12:50, 2 авг. 2018

Если говорить про SSAO, то скорее всего вместе не получится, ибо там вокруг пикселя еще соседние на глубину опрашиваются.

#2
13:01, 2 авг. 2018

PA3UJIb
> Если говорить про SSAO, то скорее всего вместе не получится, ибо там вокруг пикселя еще соседние на глубину опрашиваются.
Не, у меня пока будет примитивное освещение и AO будет в текстурах.

#3
13:42, 2 авг. 2018

Iron Man
В твоём вопросе есть капля логики, если учесть что Directional Light будет один единственный, и уже в отдельных проходах считать другие типы источников света.

Отдельно считается только потому что расчёт не будет зависеть от сложности сцены. Плюс не нужно дублировать код освещённости при построении G-буфера и отдельных проходов.

#4
13:50, 2 авг. 2018

Т.е. примитивный солнечный свет я могу смело считать вместе с альбедо и нормалями?
И заморачиваться на отдельных проходах можно только уже с появлением SSAO?

#5
14:03, 2 авг. 2018

Iron Man
> общенаправленным фоновым освещением?

это что такое?

#6
14:07, 2 авг. 2018

innuendo
> это что такое?
В 3D Максе это называется Ambient Lighting`ом = один источник света, направленный в одну сторону и с одинаковой силой освещающий всю сцену.

#7
14:09, 2 авг. 2018

Iron Man
> Т.е. примитивный солнечный свет я могу смело считать вместе с альбедо и
> нормалями?
По сути да, хотя так не делают. Но ты можешь попробовать. В итоге у тебя получается типа Forward Rendering.

#8
14:11, 2 авг. 2018

DODge
Хотелось бы изначально покорректней сделать...
А как оно вообще считается = вместе с остальными источниками?

#9
14:15, 2 авг. 2018

Т.е. в первом проходе я его смешивать не хочу, а просто рассчитывать и выводить в отдельный буфер, который уже потом учитывать при расчёте всего остального освещения и буфера нормалей.

#10
14:29, 2 авг. 2018

Iron Man
> А как оно вообще считается = вместе с остальными источниками?
Вместе. Смысл отложенного освещения в том:
DODge
> что расчёт не будет зависеть от сложности сцены

К тому же как ты его собрался считать? альбедо на свет помножив? Если ты наложишь потом еще свет уже в освещения у тебя получится (альбедо * свет) * (свет1 + свет2...) а у тебя должно быть альбедо * (свет + свет1 + ...)
Или отдельный рендер тагет?

+ к этому твое отложенное освещение становиться по факту форвард рендером, как DODge говорил.


Iron Man
> альбедо и нормалей
По логике тебе не хватает еще материала...

#11
14:33, 2 авг. 2018

Iron Man
> Хотелось бы изначально покорректней сделать...
Тогда делай так:

// Start
1 проход - построение G-буфера (альбедо, нормали, глубина, и ещё можно Metallic, Roughness если делаешь PBR)
  Здесь просто выводишь всю геометрию без учёта каких-либо источников и сохраняй указанные данные.

2 и прочие проходы - расчёт света (в отдельный буфер, где аккумулируешь освещения и затемнения от каждого источника света)

[следующие] проходы - нужные пост-процессы (SSAO, Bloom, DOF и т.д., возможно с учётом освещённости)

Последний проход - вывод на экран.
// End

Примерно таким образом строится один кадр отложенного рендеринга.

#12
14:33, 2 авг. 2018

Iron Man
> Т.е. в первом проходе я его смешивать не хочу, а просто рассчитывать и выводить
> в отдельный буфер, который уже потом учитывать при расчёте всего остального
> освещения и буфера нормалей.

Не увидел этот сабщ.
В отдельный буфер? мб текстуру?
Так зачем, делай шейдер освещения и там все считай.

DODge
> ещё можно Metallic, Roughness если делаешь PBR
А я один кидаю материал в одну текстуру?
#13
14:37, 2 авг. 2018

vindast
> А я один кидаю материал в одну текстуру?
Ты всё верно говоришь, я лишь поверхностно указал что можно сохранить. По уму конечно это всё можно логически упаковать в разные каналы одной текстуры.

#14
14:49, 2 авг. 2018

Всем спасибо!
Так и сделаю: всё освещение одним шейдером после рендера G-буфера.

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

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