|
Скачать: 7-Zip (1080K) ZIP (1300K) (исходники прилагаются, но внутрь лучше не смотреть: там всё на таких соплях...)
Демонстрирует метод, создающий ощущение темноты, не требующий сверхмощного монитора или зашторенной комнаты. Симулирует особенности человеческого глаза, в темноте практически перестающего различать цвета. Кроме того, в темноте чёткость восприятия падает - это изображается заблюриванием.
Данные скрины сняты на GeForce2 MX400 (специально с пыльной полки достал, и в компьютер вставил, чтобы показать, что и на вторых жефорсинах есть жизнь).
Реализация, конечно, отвратная, но сляпал я эту дему за полдня на коленке - зато она позволяет пощупать идею в действии. Для реального применения, конечно, нужно писать на шейдерах, а не как я - на одних glBlend и голимом glCopyTexSubImage2d(). Практически на 100% эффект достигается фильтром постобработки. При рендеринге тёмной сцены яркость устанавливается вплоть до 0.1, и только у пламени всегда равна 1.0. При повышенной яркости пламя, наоборот, слегка приглушается. Чёрно-белое преобразование - всё тем же glCopyTexSubImage2d(), в текстуру формата LUMINANCE. Для заблюривания используется смещение текстурных координат в пол-текселя (отсюда и артефакты по краям экрана).
При яркости, равной 1.0, фильтр отключается: так выглядит сцена в чистом виде, без постобработки.
Та же процедура, только коэффициенты другие: и чем вам не bloom?..