ПрограммированиеФорумГрафика

Аппаратная подгрузка 3DC в OpenGL

Страницы: 1 2 3 4 Следующая »
#0
14:37, 6 апр 2015

Такой вопрос. Как подгрузить atiшные форматы текстур ATI1N и ATI2N в OpenGL?
Будет ли это работать на Intel и Nvidia, может там надо какое-то расширение проверять. Я просто навскидку не нашёл идентификатора для glCompressedTexImage.
Хотелось бы нормалмапы в 3DC сохранить.

#1
14:42, 6 апр 2015

g-cont

Найди ATI SDK 2006 - там есть пример как надо юзать

#2
15:12, 6 апр 2015

g-cont
> ATI2N в OpenGL
intformat 0x8837 попробуй.
> может там надо какое-то расширение проверять
Да, конечно.
Ещё можно проверить FourCC-код "ATI2", но это означает лишь аппаратную поддержку железом и DX-ом. Если драйвер не держит расширение - то ой, GL в пролёте.

#3
15:19, 6 апр 2015

И вообще это deprecated.
Юзай RGTC2 + pixel shader.

#4
15:20, 6 апр 2015

Моласар

Да, действительно

#5
16:49, 6 апр 2015

Моласар
пасиба, попробую.

#6
16:54, 6 апр 2015

В списке доступных расширений нашел GL_EXT_texture_compression_latc. Я так понимаю это оно и есть.

#7
17:19, 6 апр 2015

Нет, оно называется GL_ATI_texture_compression_3dc.
Latc - для сжатия 16-битовых Luminance-alpha текстур.

#8
19:40, 6 апр 2015

GL_ARB_texture_compression_rgtc (или OpenGL 3.0)
GL_EXT_texture_compression_rgtc
GL_EXT_texture_compression_latc.

У ext версии выборка из текстуры мб вернет vec4(x, x, x, y), погляди в спеке точнее.

#9
20:45, 6 апр 2015

Так, вы меня совсем запутали. RGTC - это Red-Green, а для вектора надо три компоненты.
Или оно там в LatLong хранится?

#10
21:22, 6 апр 2015

g-cont
> для вектора надо три компоненты
В топике ты спрашивал про ATI1 и ATI2.
ATI1 - однокомпонентный.
ATI2 - двухкомпонентный.
Нормаль хранится в текстуре как XY, а Z вычисляется в шейдере.

#11
22:00, 6 апр 2015

> Или оно там в LatLong хранится?
Можно и так, но распаковывать в шейдере сложнее, чем восстанавливать z.
Кстати, последнее умел делать уже GeForce3, при всей примитивности тогдашних пиксельных шейдеров. :)
Но никто неюзал, потому что это была вендор-специфичная фича.

#12
22:28, 6 апр 2015

Моласар
> Кстати, последнее умел делать уже GeForce3, при всей примитивности тогдашних
> пиксельных шейдеров

Там был и HILO формат

#13
22:56, 6 апр 2015

innuendo
Ну да, signed hilo 16.

#14
11:02, 7 апр 2015

Да я изначально не вдавался в подробности, как там этот 3DC устроен, просто знаю, что нормали предпочтительнее в нём хранить. Но увы - не поддерживается у меня такое расширение для GL. Так что придется юзать dxt5nm как более универсальный.

Кстати, подскажите, как лучше восстановить z-компоненту с наименьшим кол-во инструкций. Потому что там же ветвление, чтобы не излвекать корень из отрицательного числа. Можно ли от него как-нибудь избавиться?

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.