Импортирование изображений

Поддерживаемые форматы изображения

Godot может импортировать данные форматы изображения:

  • BMP (.bmp) - не поддерживает изображения с разрешением 16 бит на пиксель. Поддерживаются только 1-битные, 4-битные, 8-битные, 24-битные и 32-битные.

  • DirectDraw Surface (.dds) - если MIP-карты присутствуют в текстуре, они будут загружены напрямую. Это можно использовать для достижения эффектов с помощью настраиваемых MIP-карт.

  • OpenEXR (.exr) - поддерживает HDR (настоятельно рекомендуется для панорамного неба).

  • OpenEXR (.exr) - поддерживает HDR (настоятельно рекомендуется для панорамного неба).

  • JPEG (.jpg, .jpeg) - не поддерживает прозрачность в соответствии с ограничениями формата.

  • PNG (.png) - точность при импорте ограничена 8 битами на канал (без изображений HDR).

  • Truevision Targa (.tga)

  • SVG (.svg, .svgz) - SVG растеризируются с использованием NanoSVG при их импорте. Поддержка ограничена; сложные векторы могут отображаться некорректно. Для сложных векторов их рендеринг в PNG с помощью Inkscape часто оказывается лучшим решением. Это можно автоматизировать благодаря интерфейсу командной строки.

  • WebP (.webp)

Примечание

Если вы скомпилировали редактор Godot из исходного кода с отключенными определенными модулями, некоторые форматы могут быть недоступны.

Импортирование текстур

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

Возможности импорта обширны:

../../../_images/image_import1.png

Detect 3D

Эта опция позволяет Godot знать, когда текстура (которая по умолчанию импортируется для 2D) используется в 3D. В этом случае настройки изменяются, поэтому флаги текстуры более удобны для 3D (MIP-карты, фильтр и повтор включаются, а сжатие изменяется на VRAM). Текстура также повторно импортируется автоматически.

Сжатие

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

Compress Mode (режим сжатия)

  • Сжатие VRAM: Это наиболее распространенный режим сжатия для 3D-ресурсов. Размер на диске уменьшается, и использование видеопамяти также значительно уменьшается (обычно в 4–6 раз). Этого режима следует избегать для 2D, поскольку он демонстрирует заметные артефакты.

  • Lossless Compression: (сжатие без потерь). Это наиболее распространенный режим сжатия для 2D-ресурсов. Он показывает активы без каких-либо артефактов, а сжатие на диске приличное. Однако он будет использовать значительно больше видеопамяти, чем сжатие VRAM. Это рекомендуемый параметр для пиксельной графики.

  • Lossy Compression: (сжатие с потерями). Это хороший выбор для больших 2D-ресурсов. Он имеет некоторые артефакты, но меньше, чем VRAM, а размер файла в несколько раз меньше, чем у файлов без потерь или без сжатия. Использование видеопамяти в этом режиме не уменьшается; это то же самое, что и со сжатием без потерь или без сжатия.

  • Uncompressed: (без сжатия). Полезно только для форматов, которые нельзя сжать (например, необработанные изображения RAW).

В этой таблице каждый из четырех вариантов описан вместе с их преимуществами и недостатками (|хорошее| = лучшее, |плохое| = худшее):

Несжатый

Compress Lossless (PNG)

Compress Lossy (WebP)

Compress VRAM

Описание

Stored as raw pixels

Stored as PNG

Stored as WebP

Сохраняется как S3TC/BC или PVRTC/ETC в зависимости от платформы

Размер на диске

|плохо| Большой

|обычный| Маленький

|хороший| Очень маленький

|обычный| Маленький

Использование памяти

|плохо| Большой

|плохо| Большой

|плохо| Большой

|хорошо| Маленький

Производительность

|обычный| Нормальный

|обычный| Нормальный

|обычный| Нормальный

|хорошо| Быстрый

Потеря качества

|хорошо| Нет

|хорошо| Нет

|обычно| Незначительно

|плохо| Умеренно

Время загрузки

|обычный| Нормальный

|плохо| Медленно

|плохо| Медленно

|хорошо| Быстрый

HDR Mode (режим HDR)

Godot поддерживает текстуры высокого динамического диапазона (такие, как .HDR или .EXR). Они, в основном, полезны, как равнопрямоугольные панорамы неба (в интернете есть много, если вы ищете их), которые заменяют Cubemaps в Godot 2.x. Современные ПК поддерживают формат BC6H VRAM, но есть еще много других.

Если вы хотите, чтобы Godot обеспечивал полную совместимость с точки зрения типов текстур, включите опцию "Force RGBE".

Карта Нормалей

При использовании текстуры в качестве карты нормалей требуются только красный и зеленый каналы. Поскольку обычные алгоритмы сжатия текстур создают артефакты, которые не очень хорошо выглядят на картах нормалей, формат сжатия RGTC лучше всего подходит для этих данных. Если для этого параметра установлено значение "Enabled" (включено), Godot будет импортировать изображение как сжатое RGTC. По умолчанию он установлен на "Detect" (обнаружение), что означает, что если текстура когда-либо будет использоваться в качестве карты нормалей, она будет изменена на "Enabled" (включено) и повторно импортирована автоматически.

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

Примечание

Godot требует, чтобы карта нормалей использовала координаты X+, Y- и Z+. Другими словами, если вы импортировали материал, предназначенный для использования с другим движком, вам, возможно, придется преобразовать карту нормалей, чтобы ее ось Y была перевернута. В противном случае направление карты нормалей может показаться инвертированным по оси Y.

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

Флаги

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

Повторение

Эта опция чаще всего используется в 3D, и обычно отключена в 2D. Она задает координатам UV за пределами области 0,0 -1,1 "цикл"("loop").

Повторение может быть дополнительно установлено в зеркальном режиме.

Фильтр

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

Мип-карты (Mipmaps)

Когда пиксели становятся меньше экрана, срабатывают MIP-карты. Это помогает уменьшить эффект зернистости при сжатии текстур. Имейте в виду, что на более старом оборудовании (GLES2, в основном мобильное) есть некоторые требования для использования MIP-карт:

  • Ширина и высота текстуры должны быть степенями двойки

  • Должен быть включен повтор

Помните о вышеизложенном при создании игр и приложений для телефона, стремитесь к полной совместимости и вам нужны MIP-карты.

При работе с 3D необходимо включать mipmap, так как это также улучшает производительность (для объектов, расположенных дальше, используются более компактные версии текстуры).

Анизотропный

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

SRGB

Godot использует линейное цветовое пространство при визуализации 3D. Для текстур, сопоставленных с каналами альбедо или детализации, этот параметр должен быть включен, чтобы цвета выглядели правильно. В режиме "Detect" текстура будет помечена как SRGB при использовании в каналах альбедо.

Процесс

Некоторые специальные процессы могут быть применены к изображениям при импорте в качестве текстур.

Исправить альфа-границу

Это переводит пиксели одного и того же окружающего цвета из состояния прозрачности в состояние непрозрачности. Это помогает смягчить эффект контура при экспорте изображений из Photoshop и т.п.

../../../_images/fixedborder.png

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

Предварительно умноженная альфа

Альтернативой исправлению затемненных границ является использование предварительно умноженного альфа-канала. При включении этой опции текстура будет преобразована в этот формат. Имейте в виду, что нужно будет создать материал, который использует режим наложения PREMULT ALPHA для элементов холста, которые в нём нуждаются.

HDR как sRGB

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

Invert Color (инвертировать цвета)

Меняет цвет изображения на противоположное. Это полезно, например, для преобразования карты высот, созданной внешними программами, в карту глубины для использования с Spatial Material.

SVG

Масштабировать

Этот параметр применим только к файлам SVG. Он контролирует масштаб изображения SVG. Масштаб по умолчанию (1.0) заставит импортированный SVG соответствовать исходному масштабу проекта.