Есть ли какой-нибудь инструмент для разделения PVR-текстуры на набор плиток? - PullRequest
5 голосов
/ 18 мая 2011

У меня есть одна большая текстура png 4096x4096, которая мне нужна для загрузки частей в память.Я уже разбил большую текстуру png на 16 плиток 1024x1024, а затем преобразовал их в сжатые файлы PVR.

Проблема в том, что когда я рисую эти плитки, края между плитками не совпадают с краями png.Итак, я думаю, что если есть инструмент для генерации одной PVR-текстуры 4096x4096, то разделить ее на 16 PVR-листов 1024x1024 ??

1 Ответ

7 голосов
/ 18 мая 2011

Под PVR (который является более общим форматом файла текстур, который поддерживает несколько типов текстур) Я предполагаю, что вы имеете в виду PVRTC?

PVRTC не основан на блоках в традиционном смысле, когда, скажем, с ETC или S3TC текстура разделяется на блоки 4x4 пикселей, и каждый блок сжимается отдельно. Вместо этого он пытается обмениваться данными между наборами перекрывающихся окрестностей пикселей. Это также (в некотором роде) предполагает, что текстура , вероятно, мозаичных элементов, так, например, крайняя левая крайняя область фактически обменивается информацией с крайней правой рукой (и аналогично для верхней и нижней частей). Это обычно не слишком большая проблема, если края совершенно не отличаются .

Если вы попытаетесь таким образом разделить уже сжатую текстуру на более мелкие области, это не сработает, потому что компрессор сделал предположения о том, что было использовано на большом изображении, которое не будет таким же, как на маленьком.

Что касается сжатия каждого куска по отдельности, то звучит так, что края каждого отдельного куска могут быть совершенно разными. Единственное, о чем я могу думать, это нарезать вашу оригинальную текстуру, скажем, на (2 ^ N -4) x (2 ^ N -4) единиц, но сохранить их по центру в 2 ^ N * 2 ^ N текстур, где вы дополнить 2-пиксельную границу копией оригинальных пикселей. Затем вы настраиваете наложение текстур, чтобы использовать только центральную (2 ^ N-4) x (2 ^ N -4) область. Это, надеюсь, должно уменьшить артефакты разрыва.

...