Как игры ААА используют эту текстуру в шейдерном тональном отображении?

43

Я обнаружил, что Battlefield 3, а также Saint's Row the Third используют эту текстуру на заключительном этапе отображения тонов. Кто-нибудь может поделиться ссылкой на статью о том, как используется эта текстура?

BF3 текстура отображения тона

ОБНОВЛЕНИЕ: Поскольку в сети практически нет примеров реализации Color Grading, я опубликую свой быстрый и грязный образец для XNA 4.0. Это ничего не делает, но строит стандартную 2d цветовую карту с нуля на GPU, копирует ее содержимое в 3d текстуру на CPU и выполняет фактическую коррекцию цвета с помощью кода шейдера из статьи, представленной в ответе.

Образец коррекции цвета XNA 4.0

Если вы хотите знать, что вы можете сделать с этим, посмотрите здесь:

http://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/

Вкратце, автор объясняет, как вы можете сделать скриншот вашего обычного игрового изображения с цветовой палитрой по умолчанию, выполнить коррекцию цвета скриншота в фотошопе, вырезать и скопировать искаженную палитру коррекции цвета в движок и получить эта коррекция цвета применяется для каждой игровой сцены автоматически.

cubrman
источник

Ответы:

49

Это похоже на нижний слой объемной текстуры, который в наши дни используют многие игры для коррекции цвета. Идея состоит в том, что окончательный цвет экрана RGB после рендеринга и отображения тонов используется в качестве координаты текстуры для индексации этой текстуры, а цвет, найденный в текстуре, заменяет исходный цвет.

Это позволяет художникам произвольно изменять цвета сцены, загружая объемную текстуру, которая представляет желаемые изменения. Текстура «идентичности», которая вообще не приводит к изменению цвета, состоит из текстуры, которая имеет красный градиент вдоль оси X, зеленый градиент вдоль оси Y и синий градиент вдоль оси Z (т.е. объемная глубина текстуры оси). Первый слой (Z = 0) будет выглядеть как текстура, которую вы разместили.

GPU Gems 2 описывает технику более подробно.

Натан Рид
источник