OpenGL ARGB против RGB и сжатия текстур - PullRequest
2 голосов
/ 19 января 2011

У меня есть контекст рендеринга с глубиной цвета 32 бита.Я буду использовать альфа-смешение, но не сильно;поэтому использование 24-битных изображений для большинства нужных мне текстур значительно снизит требования к памяти.У меня вопрос: могу ли я использовать 24-битные текстуры RGB с 32-битным контекстом рендеринга и ожидать такую ​​же производительность, как и 32-битная текстура ARGB?Я понимаю, что внутренний формат, вероятно, не для начала, но целевой формат RC - 32-битный ARGB.

Кроме того, я планирую использовать некоторую форму сжатия текстур.Платформа будет исключительно для Windows.Что обеспечит лучшее сжатие и самую широкую совместимость?Я также надеюсь использовать 24-битные сжатые текстуры, так как я не буду использовать альфа-биты;но контекст рендеринга останется 32-битным.

Ответы [ 2 ]

1 голос
/ 19 января 2011

Похоже, DXT5 должно работать на вас.

Вот подробности для GL_EXT_texture_compression_s3tc

0 голосов
/ 19 января 2011

Нет проблем при использовании любого формата текстуры в качестве входных текстур при рендеринге в 32-битный контекст рендеринга.Форматы текстур либо поддерживаются платформой, либо нет, вот и все, если она поддерживается, вы можете использовать ее без учета формата контекста рендеринга.

Чтобы сжать 24-битные текстуры, вы можете взятьпосмотрите на сжатие текстур DXT1 , которое поддерживается во всех реализациях OpenGL на ПК с Windows.Обратите внимание, что в зависимости от вашего контента и качества сжатия, которое вы хотите получить, существуют «хитрости», позволяющие улучшить качество изображения, используя сжатия DXT, альтернативные цветовые пространства и код шейдера для декодирования, здесь приведен пример .

...