Ответ: [TrueHorror] - разработка
ну типа как-то:
Инит:
1. создаёшь цепь для 4х даунсемплинга, сойдёт в принципе наверное 256х256, 64х64, 16х16, 4х4, 1х1.
2. создаёшь 1х1 текстуру с интерполированной накопленной яркостью, R32F. Назовём её Х.
Рендер:
3. Рендеришь содержимое экрана в 256х256 текстуру.
4. Усредняешь 4х4 пикселя её, рендеришь в 64х64 и т. д. до 1х1. Получается средняя яркость за кадр.
5. Рисуешь её в текстуру Х. Не стираешь прошлое содержимое. Ставишь обычный альфабленд и альфу = (скорость адаптации * дельтатайм). Скорость адаптации маленькое число, гораздо меньше 1. Рендертаргет флоатовый, чтобы альфа < 1/255 сработала.
6. Юзаешь текстуру Х в тонмаппинге. Как её нормально в экспозицию преобразовать - точно не скажу.
В любом случае, получаем плавную смену средней яркости.
|