Як я можу імітувати обмежену (256) кольорову палітру в OpenGL?


16

У Twitter я знайшов цей знімок гри в розробці:

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

Зображення вгорі, здається, не обмежує колір. Але дві інші картинки внизу мають 256 кольорову палітру.

Я хочу досягти подібного ефекту у своїй грі (я використовую OpenGL). Як я можу це зробити?



Ви хочете намалювати oldschool як 256 кольорову графіку чи хочете зробити 24-бітну графіку схожою на графіку старої школи? Іншими словами, ви хочете опублікувати процес чи фактично використовувати палітру кольорів 256? Ось як зробити палітру з 256 кольоровими графіками в WebGL
gman

Відповіді:


32

Я творець цього образу.

Зображення справа відображається за допомогою кольорової текстури. У остаточному шейдері GLSL я застосую dhere, потім перетворять значення RGB в цілі числа в діапазоні 0 <= x <40, об'єднують їх в один індекс, а потім шукають отримане значення кольору на цьому зображенні:

кольоровий погляд таблиці

Найнижчий ряд - це сира палітра.

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


6

Ви можете використовувати таблицю пошуку кольорових оцінок на етапі після обробки, як описано тут і, ймовірно, тут .

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

Після того, як ви це здійснили, все, що вам потрібно зробити, - це зробити скріншот, накласти на нього текстуру пошуку, а потім відредагувати її в довільному графічному програмному забезпеченні, поки вам це не сподобається, - а потім знову змінити змінену тексту пошуку. Це може або не включати зменшення отриманої таблиці пошуку до підмножини кольорів.

Завантажуючи текстуру пошуку з урахуванням обмеження кольорів, просто переконайтеся, що вимкнено всю фільтрацію, щоб вона не створювала додаткових кольорів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.