Такой вопрос. Как подгрузить atiшные форматы текстур ATI1N и ATI2N в OpenGL?
Будет ли это работать на Intel и Nvidia, может там надо какое-то расширение проверять. Я просто навскидку не нашёл идентификатора для glCompressedTexImage.
Хотелось бы нормалмапы в 3DC сохранить.
g-cont
Найди ATI SDK 2006 - там есть пример как надо юзать
g-cont
> ATI2N в OpenGL
intformat 0x8837 попробуй.
> может там надо какое-то расширение проверять
Да, конечно.
Ещё можно проверить FourCC-код "ATI2", но это означает лишь аппаратную поддержку железом и DX-ом. Если драйвер не держит расширение - то ой, GL в пролёте.
И вообще это deprecated.
Юзай RGTC2 + pixel shader.
Моласар
Да, действительно
Моласар
пасиба, попробую.
В списке доступных расширений нашел GL_EXT_texture_compression_latc. Я так понимаю это оно и есть.
Нет, оно называется GL_ATI_texture_compression_3dc.
Latc - для сжатия 16-битовых Luminance-alpha текстур.
GL_ARB_texture_compression_rgtc (или OpenGL 3.0)
GL_EXT_texture_compression_rgtc
GL_EXT_texture_compression_latc.
У ext версии выборка из текстуры мб вернет vec4(x, x, x, y), погляди в спеке точнее.
Так, вы меня совсем запутали. RGTC - это Red-Green, а для вектора надо три компоненты.
Или оно там в LatLong хранится?
g-cont
> для вектора надо три компоненты
В топике ты спрашивал про ATI1 и ATI2.
ATI1 - однокомпонентный.
ATI2 - двухкомпонентный.
Нормаль хранится в текстуре как XY, а Z вычисляется в шейдере.
> Или оно там в LatLong хранится?
Можно и так, но распаковывать в шейдере сложнее, чем восстанавливать z.
Кстати, последнее умел делать уже GeForce3, при всей примитивности тогдашних пиксельных шейдеров. :)
Но никто неюзал, потому что это была вендор-специфичная фича.
Моласар
> Кстати, последнее умел делать уже GeForce3, при всей примитивности тогдашних
> пиксельных шейдеров
Там был и HILO формат
innuendo
Ну да, signed hilo 16.
Да я изначально не вдавался в подробности, как там этот 3DC устроен, просто знаю, что нормали предпочтительнее в нём хранить. Но увы - не поддерживается у меня такое расширение для GL. Так что придется юзать dxt5nm как более универсальный.
Кстати, подскажите, как лучше восстановить z-компоненту с наименьшим кол-во инструкций. Потому что там же ветвление, чтобы не излвекать корень из отрицательного числа. Можно ли от него как-нибудь избавиться?
Тема в архиве.