Імпортування зображень

Навіщо їх імпортувати?

У Godot 3+ файли зображень вже не є власними ресурсами, і їх потрібно імпортувати. Причиною цього є велика кількість параметрів конфігурації, з якими можна імпортувати файли зображень.

Цей невеликий посібник пояснить, що це за параметри та як найкраще їх використовувати.

Імпортування текстур

За замовчуванням Godot імпортує зображення у вигляді текстур. Текстури зберігаються у відеопам'яті але не можна отримати до них доступ безпосередньо. Саме завдяки цьому вони вимальовуються ефективно.

Варіантів імпорту дуже багато:

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

Виявити 3D (Detect 3D)

Цей параметр дає Godot знати про те, коли текстура (яка за замовчуванням імпортується для 2D) використовується в 3D. Якщо це трапиться, налаштування змінюються, щоб текстурні прапори були більш привітними до 3D (mipmaps, фільтрувати та повторюватись ввімкнено, а стиснення змінено на VRAM). Текстура також повторно імпортується автоматично.

Підтримувані формати зображень

Godot може імпортувати такі формати зображень:

  • BMP (.bmp) - No support for 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported.
  • DirectDraw Surface (`` .dds``) - Якщо в текстурі є mipmaps, вони будуть завантажені безпосередньо. Це можна використовувати для досягнення ефектів за допомогою спеціальних карт.
  • OpenEXR ( .exr) - підтримує HDR (дуже рекомендується для панорамного неба).
  • Radiance HDR ( .hdr) - підтримує HDR (дуже рекомендується для панорамного неба).
  • JPEG ( .jpg, .jpeg) - не підтримує прозорість відповідно до обмежень формату.
  • PNG ( .png) - Точність обмежена 8 бітами на канал при імпорті (без HDR-зображень).
  • Truevision Targa (.tga)
  • SVG (`` .svg``, .svgz) - SVG-файли растерізуються за допомогою NanoSVG при їх імпорті. Підтримка обмежена; складні вектори можуть відображатися неправильно. Для складних векторів рендеринг їх у PNG за допомогою Inkscape часто є кращим рішенням. Це можна автоматизувати завдяки `інтерфейсу командного рядка<https://wiki.inkscape.org/wiki/index.php/Using_the_Command_Line#Export_files>`__ .
  • WebP (.webp)

Примітка

Якщо ви скомпілювали редактор Godot з початкових кодів з вимиканням певних модулів, робота з деякими форматами може бути недоступною.

Стиснення

Зображення є одним з найбільших активів у грі. Для ефективності їх потрібно стиснути. Godot пропонує кілька методів стиснення, залежно від випадку використання.

Режим стиснення

  • Стиснення VRAM: (VRAM Compression) Це найпоширеніший режим стиснення для об'єктів 3D. Розмір на диску зменшується, використання відеопам'яті також значно зменшується (зазвичай на 4 - 6). Цього режиму слід уникати для 2D, через виникнення помітних спотворень.
  • Стиснення без втрат: (Lossless Compression) це найпоширеніший режим стиснення для 2D активів. Він показує активи без будь-яких спотворень, при пристойному зменшенні об'єму використовуваної пам'яті диску. Однак він буде використовувати значно більше обсягу відеопам'яті, ніж VRAM Стиснення. Це також рекомендована настройка для піксельної графіки.
  • Стиснення з втратами: (Lossy Compression) це хороший вибір для великих 2D активів. Він має деякі спотворення, але менші, ніж VRAM, а розмір файлу в кілька разів менший порівняно з режимами Без втрат та Без стиснення. Цей режим не зменшує використання відеопам'яті; воно те саме, що і при стисненні Без втрат та Без стиснення.
  • Без стиснення: (Uncompressed) корисний лише для форматів, які неможливо стиснути (наприклад, необроблені зображення).

У цій таблиці описаний кожен із чотирьох варіантів разом із їхніми перевагами та недоліками (good = краще, bad = гірше):

  Без стиснення Стиснення без втрат (PNG) Стиснення з втратами (WebP) Стиснення VRAM
Опис Зберігається як сирі пікселі Зберігається як PNG Зберігається як WebP Зберігається як S3TC/BC, або PVRTC/ETC, залежно від платформи
Розмір на диску bad Багато regular Мало good Дуже Мало regular Мало
Використання пам'яті bad Багато bad Багато bad Багато good Мало
Швидкодія regular Нормально regular Нормально regular Нормально good Швидко
Втрата якості good Нема good Нема regular Трохи bad Помірно
Час завантаження regular Нормально bad Повільно bad Повільно good Швидко

Режим HDR

Godot підтримує текстури високого динамічного діапазону (як .HDR, або .EXR). Вони в основному корисні, як прямокутні панорами неба (багато таких можна знайти в Інтернеті), замість кубічних карт (Cubemaps) в Godot 2.x. Сучасні комп'ютери підтримують формат VRAM BC6H, але не всі.

Якщо ви хочете, щоб Godot забезпечив повну сумісність текстур, увімкніть опцію "Force RGBE" ("Формувати RGBE").

Normal Map (Карта нормалей)

При використанні текстури в якості карти нормалей, потрібні лише червоний та зелений канали. Звичні алгоритми стиснення текстури створюють спотворення, які не виглядають добре в картах нормалей, формат стиснення RGTC найкраще підходить для цих даних. Коли ця опція в положенні "Enabled" ("Увімкнено"), Godot імпортує зображення у вигляді стиснення RGTC. За замовчуванням встановлено значення "Detect" ("Виявити"), що означає, що якщо текстура коли-не-будь використовуватиметься як карта нормалей, вона буде змінена на "Enabled" ("Увімкнено") і автоматично імпортується.

Зауважте, що стиснення RGTC впливає на отриману карту нормалей зображення. Вам доведеться налаштувати спеціальні шейдери, які використовують карту нормалей, щоб врахувати це.

Примітка

Godot requires the normal map to use the X+, Y- and Z+ coordinates. In other words, if you've imported a material made to be used with another engine, you may have to convert the normal map so its Y axis is flipped. Otherwise, the normal map direction may appear to be inverted on the Y axis.

More information about normal maps (including a coordinate order table for popular engines) can be found here.

Flags

Існує багато налаштувань, які можна регулювати під час імпорту зображення у вигляді текстури, залежно від випадку використання.

Repeat (Повтор)

Цей параметр найчастіше використовується в 3D, тому він, зазвичай, відключений у 2D. Він встановлює УФ (UV)-координати, що виходять за рамки 0,0 - 1,1, на "цикл".

Повторення можна перевести в дзеркальний (mirrored) режим.

Filter (Фільтр)

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

Mipmaps

Коли пікселі стають меншими за екранні, приходить час mipmaps. Він допомагає зменшити зернистий ефект при зменшенні текстур. Майте на увазі, що для старих апаратних засобів (GLES2, головним чином мобільних) є деякі вимоги щодо використання mipmap:

  • Ширина та висота текстури повинні ділитися на 2
  • Повторення (Repeat) має бути ввімкнено

Пам'ятайте про вищезазначене, коли створюєте телефонні ігри та програми, і хочете націлитись на повну сумісність та потребуєте mipmaps.

В 3D, mipmap слід увімкнути, оскільки це також покращує продуктивність (менші версії текстури використовуються для віддалених об'єктів).

Anisotropic

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

SRGB

Godot uses Linear colorspace when rendering 3D. Textures mapped to albedo or detail channels need to have this option turned on in order for colors to look correct. When set to "Detect" mode, the texture will be marked as SRGB when used in albedo channels.

Process (Процес)

Деякі спеціальні процеси можуть бути застосовані до зображень при імпорті у вигляді текстур.

Fix Alpha Border

Це переводить пікселі однотонного оточуючого кольору в перехід від прозорості до непрозорості. Це допомагає пом'якшити контурний ефект при експорті зображень із Photoshop тощо.

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

Його краще не міняти, якщо тільки не потрібні конкретні значення.

Premultiplied Alpha

Альтернативою для фіксації затемнених меж є використання premultiplied alpha( попередньо помноженого альфа). Увімкнувши цю опцію, текстура буде перетворена в цей формат. Майте на увазі, що потрібно створити матеріал, який використовує режим суміші PREMULT ALPHA на полотнах, які потребують цього.

HDR як sRGB

Кілька файлів HDR є broken і містять кольорові дані sRGB. Не рекомендується використовувати їх, але, в гіршому випадку, ввімкнення цієї опції змусить їх виглядати правильно.

Invert Color (Інвертувати колір)

Зміна (реверс) кольору зображення. Це корисно, наприклад, для перетворення карти висоти, створеної зовнішніми програмами, в карту глибини для використання з Spatial Material.