Unigine uses ATI2 (BC5) texture compression for normal maps. PlayStation3 doesn't support this compression. But after fast bit rearranging we can obtain DXT5 texture with acceptable quality. And it's much better than uncompressed textures :)
BC5 это два канала, закодированные как альфа в DXT5 - т.е. два 8-битных опорных значения, и 16 3-битных масок интерполяции. В DXT5 цвет кодируется двумя 565 опорными значениями и 16-ю 2-битными масками интерполяции.
Один канал сохраняем, во втором 3-битные маски заменяем на двухбитные, выкидывая последний бит (это чуть-чуть bit shifts и and/or), 8-битные опорные значения заменяем на 6-битные, формируем два цвета с r=b=0, все. В шейдере в каналах .ga - наши данные.
Здравствуйте!
ReplyDeleteА Вы не собираетесь написать небольшую статью/заметку о быстрой конверсии BC5->DXT5 ?
Мне например очень интересно.
Полагаю, что примерно так:
ReplyDeleteBC5 это два канала, закодированные как альфа в DXT5 - т.е. два 8-битных опорных значения, и 16 3-битных масок интерполяции.
В DXT5 цвет кодируется двумя 565 опорными значениями и 16-ю 2-битными масками интерполяции.
Один канал сохраняем, во втором 3-битные маски заменяем на двухбитные, выкидывая последний бит (это чуть-чуть bit shifts и and/or), 8-битные опорные значения заменяем на 6-битные, формируем два цвета с r=b=0, все.
В шейдере в каналах .ga - наши данные.
Именно так и есть :)
ReplyDelete