как вообще в теории выглядит шейдер GI ?
|
нету такого шейдера, есть много разных подходов к реализации GI сегодня, гугли "realtime global illumination" (из последних новинок - voxel cone tracing), естественно реалтаймовое ги сегодня совсем неполное, лучших результатов ты можешь добиться только оффлайновым препросчётом (лайтмапы, лайтпробы).
в играх я пока совсем реалтайм ги не видел, есть технология enlighten, доступна в UE и Frostbite, но насколько мне известно, там не поддерживается смена источников освещения в рантайме (все равно что-то препросчитывается), в CE есть своё ги, но оно не особо эффектно выглядит имхо, в UE4 планируется ги не знаю по какой технологии (вероятно тот же enlighten?), остальные технологии существуют только в демках и доках и мало изведанны.
вот ещё такой фейк есть - reflective shadowmaps или как-то так, суть в том, что ты рендеришь с источника света, как для шадоумапы, но рендеришь целый маленький G-Buffer (цвет, позиция или глубина), потом в деферед шейдинге используешь этот буфер для позиционирования небольших поинт лайтов такого же цвета, какой снят в буфере, в результате имеешь один отскок света от поверхностей. но затенение при этом не учитывается (если ты не рендеришь шадоумап с каждого такого поинт лайта), т.е. у тебя рефлексы эти смогут насквозь просвечивать через другие поверхности.