забить
HDR - киньте ссылок как его сделать.
|
Состоит из трёх-четырёх-пяти частей.
1) HDR контент. Освещение заранее настраивается в широких диапазонах, а не 0-1, скайбокс может быть хдрный, кубмапы (для них особо важно) итп.
2) Рендер в HDR рендер таргет. Гбуфер не надо, результат надо (В принципе, если очень хочется, можно обходится и без этого и рисовать сразу затонмаппеную картинку, но тогда не получится корректного хдр блума, а также в случае дефера полностью сломается аккумуляция света). Самый модный и кайфовый хдр формат нынче DXGI_FORMAT_R11G11B10_FLOAT. На DX9 может сойти D3DFMT_A2R10G10B10. Не так часто даже 16 бит реально оправданы.
3) Tonemapping. Привождение ядерных хдр диапазонов в экран бедного монитора. Варианты:
http://filmicgames.com/archives/75 (также можно самому ещё выдумывать, и многие выдумывают). Я юзаю анчартовый, мне норм.
4) [Опционально] Блум. Ну тут всё понятно, только блумить надо не всё подряд, а то, что реально ЯРКО, т.е. вылезает за единицу даже после тонмаппинга. Белый листок бумаги и белая лампа - не одно и то же, пусть на скриншоте их ргб и может быть похож, но не реальное HDR значение.
5) [Опционально] Адаптация. Даунсемплим экран в 2 раза, потом ещё в 2 и так до 1 пикселя, который говорит нам об средней яркости картинки. Меняем экспозицию в зависимости от этого. Это на самом деле грубоватый вариант, чреватый резкими скачками и прочими неприятностями. Где-то у Valve была особо хитрая дока про адаптацию, там они за много кадров усредняли ещё это среднее значение и вообще как-то извращались, чтобы всё плавно и т. д.