Сжатие текстур от 4096 до 512 без потери качества - PullRequest
0 голосов
/ 10 марта 2019

Я запек текстуру на изображении 4k и уменьшил ее до 512 с помощью Gimp, но качество в Unity 3D плохое.Формат изображения png.Является ли хорошей идеей испечь текстуру на изображении 4k и уменьшить ее до 512 для мобильной игры?Что я могу сделать, чтобы сохранить хорошее качество запеченной текстуры небольшого размера (512 или ниже) для разработки мобильных игр?

1 Ответ

3 голосов
/ 17 апреля 2019

В общем, вы можете ожидать, что пожертвуете качеством текстуры, если будете использовать текстуру меньшего размера.Это имеет смысл: при меньшем количестве данных что-то должно быть потеряно, а это обычно мелкие детали и острые края.Тем не менее, есть несколько стратегий, позволяющих получить максимальную отдачу от ваших текстурных данных:

  • Убедитесь, что ультрафиолетовые лучи вашей модели расположены максимально эффективно.На детали, где важна детализация, например на лицах, следует уделять больше места ультрафиолетовому излучению, чем на детали, где детали не важны, такие как одежда с низкой частотой или нижняя сторона моделей.Минимизируйте неиспользуемое текстурное пространство.

  • Где это возможно, вы можете использовать перекрывающиеся ультрафиолетовые лучи, чтобы повторно использовать аналогичные части вашего ультрафиолетового пространства.Если ваша модель абсолютно симметрична, вы можете отобразить половинки в одно и то же пространство.Или, если ваша модель представляет собой ящик с одинаковыми сторонами, вы можете сопоставить каждую сторону одному и тому же UV-квадрату.

  • Проверьте, можно ли разбить текстуру на несколько текстур, которые менее чувствительны к уменьшению размеров, затем сложите их вместе.Например, текстура ландшафта может быть разложена на низкочастотную цветную текстуру и высокочастотную шумовую текстуру.В этом случае низкочастотная текстура может быть масштабирована намного меньше без потери качества, в то время как высокочастотная текстура может быть заменена обрезанной, мозаичной текстурой или процедурно сгенерирована в шейдере.

  • Эксперимент с различными алгоритмами изменения размера.Большинство графических редакторов имеют возможность изменить размер, используя бикубические или билинейные методы.Bicubic лучше справляется с сохранением краев, в то время как билинейный иногда лучше подходит для некоторых материалов / шейдеров.Вы также можете улучшить текстуру с измененным размером, осторожно используя фильтры размытия или повышения резкости.

  • Если оборудование, на которое ориентирована ваша игра, поддерживает это, вам следует оценить использование форматов аппаратного сжатия, напримерETC2 или ASTC.Например, формат ETC2 может сжимать данные текстуры 24-битного RGB в шесть раз, при этом сохраняя те же размеры изображения.Сжатие с потерями, поэтому некоторая информация об изображении теряется, и есть некоторые артефакты, но для некоторого контента это может выглядеть лучше, чем необработанные текстуры, масштабированные до аналогичного размера данных.В зависимости от содержимого, некоторая комбинация изменения размера и аппаратного сжатия текстур может приблизить вас к желаемому соотношению качества и размера.Руководство Unity утверждает, что оно автоматически выбирает хороший формат текстур по умолчанию при экспорте, но вы можете попробовать другие в опциях экспорта .

  • Обычно мотивация для использованияменьшие текстуры потребляют меньше видеопамяти и улучшают производительность.Однако, если мотивация заключается просто в уменьшении размера загрузки игры, вы можете попробовать альтернативные форматы изображений.JPG, например, позволяет вам выбрать значение качества изображения, чтобы получить меньший размер файла.Тем не менее, он редко используется в играх, потому что он занимает столько же видеопамяти, сколько PNG такого же размера, может иметь артефакты и не поддерживает альфа.

...