Вопрос

Можно ли использовать цветные паллетки в OpenGL ES 1.1?

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

Это возможно, или это должно быть реализовано вручную (изменение данных текстуры напрямую)?

Это было полезно?

Решение

Это не аппаратная особенность MBX, но быстрой проверки GL.H для ES 1.x от iPhone SDK показывает, что GL_PALETTE4_RGB8_OES, GL_PALETTE8_RGBA8_OES и куча других доступны как одна из постоянных для передачи glCompressedTexImage2D, согласно странице человека здесь. Отказ Таким образом, вы можете передавать текстуры с палитрами к этому, но смогу поспорить все, что водитель просто превратит их в текстуры RGB на CPU, а затем загружать их в графический процессор. Я не верю, что Apple поддерживает эти типы сжатой текстуры по любой причине, кроме того, что они являются частью спецификации ES 1.x.

На es 2.x вы можете делать все, что вы хотите. Вы можете легко загрузить палитру как одну текстуру (с, скажем, пиксель на (X, 0), являющийся цветом для индекса палитры X) и палитрованной текстуры, как другое. Затем вы будете использовать две текстуры для выполнения работы, которые, вероятно, могут сделать, когда построение фрагментов, поэтому используйте свое собственное суждение относительно того, можете ли вы это позволить.

Другие советы

Имейте в виду, что что-нибудь, кроме не MiPmapped GL_Nearest, сочетается между индексами палитры. Я закончил расширять палилированные текстуры в моем методе декомпрессии перед загрузкой их как BGRA32. (GLES 2.0)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top