Как я могу имитировать ограниченную (256) цветовую палитру в OpenGL?

16

В Твиттере я нашел этот скриншот игры в разработке:

введите описание изображения здесь

Изображение сверху выглядит без каких-либо цветовых ограничений. Но две другие картинки внизу имеют 256 цветовую палитру.

Я хочу добиться аналогичного эффекта в моей игре (я использую OpenGL). Как я могу это сделать?

oxysoft
источник
Связанный: gamedev.stackexchange.com/questions/43294/…
Лоран Кувиду
Вы хотите нарисовать oldschool как 256-цветную графику или хотите, чтобы 24-битная графика выглядела как графика старой школы? Другими словами, вы хотите опубликовать процесс или использовать 256 цветовую палитру? Вот как сделать 256-цветную графику в WebGL
gman

Ответы:

32

Я создатель этого изображения.

Изображение справа отображается с использованием цветовой текстуры. В последнем шейдере GLSL я применяю дизеринг, затем конвертирую значения RGB в целые числа в диапазоне 0 <= x <40, объединяю их в один индекс и затем ищу результирующее значение цвета на этом изображении:

таблица цветов

Самый низкий ряд - необработанная палитра.

Изображение слева создается исключительно в шейдере путем понижающей дискретизации красного и зеленого каналов до 8 значений, а синего канала до 4 значений после применения сглаживания, что приводит к RGB332. Я также играл с 7 красными, 9 зелеными и 4 синими оттенками, в результате всего 252 цвета, но с большим акцентом на зеленый, к которому человеческий глаз наиболее чувствителен.

вырезка
источник
6

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

введите описание изображения здесь

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

При загрузке текстуры поиска с учетом ограничения цвета просто убедитесь, что все фильтры отключены, чтобы не создавать дополнительных цветов.

Адам
источник