Структура пака
==============
*.vsh / *.fsh / *.csh (в корне)  - заглушки: #version + #include нужной программы. Так требует Iris.
program/   - код программ (имена по смыслу: lighting, vxgi_trace, taa, dof, bloom...). Одинаковые программы - один общий файл (например, gbuffers_common.vsh.glsl).
include/   - общий код. Каждая библиотека в первых строках перечисляет uniform, которые программа должна объявить до её подключения.
  settings.glsl      все настройки меню (единственное место, где объявлены #define-опции)
  common.glsl        safe3, ign, vogel
  taa.glsl           сдвиг кадра для TAA (halton, taaJitter)
  depth.glsl         позиция и линейная глубина по буферу глубины
  projection.glsl    проекция точки на экран
  reproject.glsl     где пиксель был в прошлом кадре (накопление по кадрам)
  sampling.glsl      случайные числа (голубой шум + R2 по кадрам) и косинусное распределение лучей (VXGI, VXAO)
  gi_rate.glsl       частичная трассировка GI: какие пиксели пускают лучи в этом кадре, упаковка в giRaw
  vxgi_atrous.glsl   шумоподавление VXGI: один проход вейвлет-фильтра (deferred5-9)
  blocklight.glsl    ванильный лайтмап света блоков (за краем воксельной сетки, рука, вода)
  bsdf.glsl          модель отражения: блик GGX, отражение окружения (DFG), многократное рассеяние, VNDF
  pbr.glsl           LabPBR: нормали, specular, металлы, излучение, SSS; октаэдральные нормали
  parallax.glsl      parallax occlusion mapping
  atmosphere.glsl    физическая модель атмосферы (Рэлей, Ми, озон)
  sky.glsl           цвет неба/света из таблицы неба (prepare.csh)
  voxel_scene.glsl   воксельная сцена VXGI: размеры, флаги, координаты; SSBO списка источников и форм блоков
  voxel_trace.glsl   трассировка луча по вокселям (DDA + пропуск пустоты + сферы света)
  light_sources.glsl цвета и уровни источников света по ID
  vxgi_light.glsl    освещение точек попадания воксельных лучей (солнце, излучение)
  ircache.glsl       кэш освещённости VXGI: адресация, метки, грани
  sun_shadow.glsl    солнечные тени: луч по вокселям (листва по текстуре), карта теней, тени по экрану
  shadow_buf.glsl    видимость солнца по пикселям (SSBO 6): sun_shadow.csh -> освещение
  caustics.glsl      каустики под водой (по кривизне волн и карте теней с меткой воды)
  water_waves.glsl   волны воды: наклон и кривизна (поверхность воды, каустики)
  voxel_tex.glsl     текстуры блоков для воксельных лучей: где в атласе текстура грани, цвет точки попадания
  voxel_refl.glsl    воксельные отражения (вода, стекло, PBR): луч, текстура, освещение попадания
  rt_lights.glsl     трассированный свет блоков: память источников клеток, вклад сферы, луч тени
  sst.glsl           трассировка по экрану (мелкие объекты и мобы, которых нет в вокселях)
  rc.glsl            Radiance Cascades: зонды, каскады, направления, хранение (SSBO 3-5)
  rc_merge.glsl      Radiance Cascades: слияние каскадов (deferred4-7)
  rc_gather.glsl     Radiance Cascades: свет пикселя из зондов
  rc_relocate.glsl   перенос зонда из блока к его грани
  subgroup_ext.glsl  #extension GL_KHR_shader_subgroup_* (в заготовках проходов RC сразу после #version)
  subgroup.glsl      операции над subgroup (выбор потока, сумма) и запасной путь без них (RC_SUBGROUPS)

Порядок кадра
=============
begin     - очистка буферов вокселизации (vx_clear): список источников, формы неполных блоков
shadow    - карта теней + вокселизация (shadow.gsh)
prepare   - таблица неба (sky_lut)
prepare1  - обновление кэша освещённости (ircache_update)
gbuffers  - геометрия
deferred  - VXAO (deferred), солнечные тени с накоплением (sun_shadow, 1, вычислительный) и размытие VXAO (1); Radiance Cascades (2-8, вычислительные, только если включены:
            зонды, их лучи + видимость соседей, 4 слияния, освещённость зондов); освещение (lighting, 9);
            лучи VXGI + свет блоков (vxgi_trace, 10, вычислительный); накопление (11), фильтр (12-16),
            применение GI (17), PBR-отражения: луч (18), размытие по шероховатости (19), добавление (20)
composite - вода/преломление/воксельные отражения/туман, объёмный свет, TAA, DOF, bloom, тонмаппинг
final     - отладочные виды и лёгкая резкость после TAA (final_output)
