Лучший формат изображения для несжатых текстур? - PullRequest
1 голос
/ 10 февраля 2009

Я нахожусь в процессе выбора формата изображения, который будет использоваться в качестве формата хранения для всех внутренних текстур. Этот формат будет использоваться в качестве исходного формата, из которого будут создаваться сжатые текстуры для разных платформ и конфигураций, поэтому он должен охватывать все возможные типы текстур (2D, куб, волиметрические, различное количество mip-карт, форматы пикселей с плавающей точкой, и т.д.) и быть полностью без потерь. Кроме того, формат должен содержать немного метаданных.

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

Я думал об использовании DDS, но этот формат не поддерживает метаданные, насколько я вижу.

Все предложения приветствуются!

Ответы [ 7 ]

5 голосов
/ 10 февраля 2009

С вашими требованиями вы должны остаться в вашем собственном формате. Я не знаю ни о каком формате изображения, кроме DDS, который поддерживает объемные и кубические текстуры. К сожалению, DDS не поддерживает метаданные.

Ближайшая вещь, которую вы можете найти, это TIFF. Он напрямую не поддерживает кубические карты или объемные текстуры, но поддерживает любое количество субизображений. Таким образом, вы можете повторно использовать субизображения в виде срезов или сторон куба.

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

Nils

2 голосов
/ 10 февраля 2009

Просматривая ресурсы различных игр, я обнаружил, что большинство из них хранят текстуры (я не знаю, сжаты они или нет) в TGA

1 голос
/ 24 февраля 2009

Мой опыт работы с DDS заключается в том, что это плохо документированный и сложный формат для работы, имеющий мало преимуществ. Как правило, проще просто сохранить мастер-файл для каждого класса изображений, который имеет ссылки на исходные изображения, которые его составляют (т.е. 6 граней для карты куба, произвольное количество фрагментов для текстуры объема), а также любые другие полезные мета-данные. Всегда будет хорошей идеей хранить метаданные в отдельном файле (или в базе данных), так как вы не хотите загружать большое количество изображений при выполнении поиска, заполнении браузеров и т. Д. Это также имеет смысл отделить исходный формат изображения (tiff, tga, jpeg, dds ...) от вашего «мета-формата» (куб, объем ...), поскольку вы можете обнаружить, что вам необходимо использовать сжатие с потерями для поддержки форматов HDR или очень большой объем данных источника.

1 голос
/ 10 февраля 2009

Придерживайтесь всего, с чем работают ваши художники.

  • Если вы магазин Windows / Mac и используете фотошоп с флешкой .psd
  • Если вы работаете в Unix и используете gimp придерживаться .xcf

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

Поместите метаданные (какими бы они ни были) где-то "вдоль" изображений, если нативный формат (psd / xcf) не поддерживает их.

Для таких вещей, как кубические карты, мип-карты (если они не генерируются конвертером) придерживаются указаний или указаний, как поместить их в один файл.

В зависимости от того, какой инструмент вы используете для создания объемного материала, просто придерживайтесь этого формата в собственном формате.

Хотя написание пользовательских форматов для цели, как правило, хорошая идея, написание пользовательских форматов для артистов приводит к хаосу ...

0 голосов
/ 24 февраля 2009

Как альтернативное решение, может быть, потратить некоторое время на написание плагина для Free Image Editor для вашего формата файла? Я никогда не делал этого раньше, поэтому я не знаю, какую работу мы выполняем, но для вас есть множество примеров кода.

0 голосов
/ 10 февраля 2009

TIFF, вероятно, будет вашей ближайшей ставкой для формата, который поддерживает произвольные метаданные и несколько кадров, но я думаю, что вам лучше хранить активы (в данном случае изображения) отдельно от того, как они конвертируются и используются в двигатель.

Храните изображения в 32-битном формате PNG и помещайте тип и метаинформацию в XML. Это делает ваши данные видимыми, читаемыми и редактируемыми. Неизвестные пользовательские форматы предназначены для двигателей, а не людей.

0 голосов
/ 10 февраля 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...