Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Середовище та пост-обробка

Godot 4 надає перероблений ресурс середовища, а також нову систему пост-обробки з багатьма доступними ефектами прямо з коробки.

Примітка

Починаючи з Godot 4, параметри середовища продуктивність/якість визначаються в налаштуваннях проекту, а не в ресурсі середовища. Це полегшує глобальні коригування, оскільки вам більше не потрібно окремо налаштовувати ресурси середовища відповідно до різних апаратних конфігурацій.

Зауважте, що більшість налаштувань продуктивності/якості середовища відображаються лише після ввімкнення перемикача Додатково в налаштуваннях проекту.

Середовище

Ресурс Environment зберігає всю інформацію, необхідну для керування середовищем 2D і 3D візуалізації. Це включає небо, навколишнє освітлення, відображення тонів, ефекти та налаштування. Сам по собі він нічого не робить, але його можна ввімкнути, використовуючи його в одному з наступних місць у порядку пріоритету:

Вузол Camera3D (високий пріоритет)

Для середовища можна встановити вузол Camera3D. Воно матиме пріоритет над будь-яким іншим налаштуванням.

../../_images/environment_camera.webp

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

Попередній перегляд середовища та сонця (низький пріоритет)

Примітка

Починаючи з Godot 4, середовище попереднього перегляду та система Sun замінюють файл default_env.tres, який використовувався в проектах Godot 3.

Якщо в поточній сцені немає вузла WorldEnvironment або DirectionalLight3D, редактор замість нього відобразить середовище попереднього переглду та сонце. Це можна вимкнути за допомогою кнопок у верхній частині 3D-редактора:

../../_images/environment_preview_sun_sky_toggle.webp

Якщо клацнути 3 вертикальні крапки праворуч, відобразиться діалогове вікно, яке дозволить вам налаштувати зовнішній вигляд середовища попереднього перегляду:

../../_images/environment_preview_sun_sky_dialog.webp

Попередній перегляд сонця та неба видно лише в редакторі, а не в запущеному проекті. За допомогою кнопок у нижній частині діалогового вікна ви можете додати попередній перегляд сонця та неба до сцени як вузли.

Порада

Якщо ви утримуєте Shift під час натискання Додати сонце до сцени або Додати середовище до сцени в редакторі середовища попереднього перегляду, це додасть як сонце попереднього перегляду, так і середовище до поточної сцени (як ніби ви натиснули обидві кнопки окремо). Використовуйте це для прискорення налаштування проекту та створення прототипу.

Атрибути камери

Примітка

У Godot 4 інформацію про експозицію та глибину різкості було виділено з ресурсу Environment в окремий ресурс CameraAttributes. Це дозволяє легше регулювати ці властивості незалежно від інших параметрів середовища.

Ресурс CameraAttributes зберігає інформацію про експозицію та глибину різкості. Це також дозволяє ввімкнути автоматичне налаштування експозиції залежно від яскравості сцени.

Доступні два типи ресурсів CameraAttribute:

  • CameraAttributesPractical: Функції відображаються за допомогою довільних одиниць, які легше обґрунтувати для більшості випадків використання гри.

  • CameraAttributesPhysical: Функції відображаються за допомогою реальних одиниць, подібних до цифрової камери. Наприклад, поле зору встановлюється за допомогою фокусної відстані в міліметрах замість значення в градусах. Рекомендовано, коли важлива фізична точність, наприклад для фотореалістичного відтворення.

Обидва типи ресурсів CameraAttribute дозволяють використовувати однакові функції, але вони налаштовані по-різному. Якщо ви не знаєте, який вибрати, використовуйте CameraAttributesPractical.

Примітка

Використання CameraAttributesPhysical на вузлі Camera3D заблокує коригування кута зору та аспектів у цьому Camera3D, оскільки натомість поле зору налаштовується в ресурсі CameraAttributesPhysical. Якщо використовується у світовому середовищі, CameraAttributesPhysical не замінить будь-який Camera3D у сцені.

Ресурс CameraAttributes можна додати до вузла Camera3D або WorldEnvironment. Якщо для поточної камери встановлено параметр CameraAttributes, він замінить параметр, встановлений у WorldEnvironment (якщо є).

У більшості ситуацій рекомендується встановити ресурс CameraAttributes на вузлі Camera3D замість WorldEnvironment. На відміну від WorldEnvironment, призначення ресурсу CameraAttributes вузлу Camera3D запобігає відображенню глибини різкості у вікні перегляду 3D-редактора, якщо камера не переглядається.

Параметри середовища

Далі наведено детальний опис усіх параметрів середовища та способів їх використання.

Тло

Розділ «Тло» містить параметри заповнення фону (частини екрана, де не намальовані об’єкти). Фон служить не лише для відображення зображення чи кольору. За замовчуванням це також впливає на те, як на об’єкти впливає навколишнє та відбите світло. Це називається освітленням на основі зображення (IBL).

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

../../_images/environment_background1.webp

Доступно кілька фонових режимів:

  • Clear Color використовує чіткий колір за умовчанням, визначений у налаштуваннях проекту. Фон буде постійного кольору.

  • Користувацький колір подібний до Чіткого кольору, але з власним значенням кольору.

  • Небо дозволяє визначити фоновий матеріал неба (див. нижче). За замовчуванням об’єкти в сцені відображатимуть цей матеріал неба та поглинатимуть навколишнє світло.

  • Полотно відображає 2D-сцену як фон для 3D-сцени. Це можна використовувати, щоб зробити видимими ефекти середовища під час 2D-рендерінгу, наприклад glow in 2D.

  • Keep does not draw any sky, keeping what was present on previous frames instead. This improves performance in purely indoor scenes, but creates a "hall of mirrors" visual glitch if the sky is visible at any time.

  • Camera Feed displays a CameraFeed from a physical camera as the background, useful for AR games on mobile devices.

Небесні матеріали

Якщо використовується фоновий режим Небо (або для режиму навколишнього/відбитого світла встановлено значення Небо), підресурс «Небо» стає доступним для редагування в ресурсі «Оточення». Редагування цього підресурсу дозволяє створити ресурс SkyMaterial у Sky.

Є 3 вбудовані матеріали неба на вибір:

  • PanoramaSkyMaterial: Використовуйте панорамне зображення неба на 360 градусів (рекомендоване співвідношення сторін 2:1). Щоб скористатися перевагами високого динамічного діапазону, панорамне зображення має бути у форматі, сумісному з HDR, такому як .hdr або .exr, а не у стандартному форматі динамічного діапазону, такому як .png або .jpg.

  • ProceduralSkyMaterial: використовуйте процедурно згенероване небо з регульованими кольорами землі, сонця, неба та горизонту. Це тип неба, який використовується в попередньому перегляді редактора. Положення сонця автоматично визначається за першими 4 вузлами DirectionalLight3D, присутніми на сцені. Одночасно може бути до 4 сонць.

  • PhysicalSkyMaterial: використовуйте процедурне небо на фізичній основі з регульованими параметрами розсіювання. Положення сонця автоматично визначається з першого вузла DirectionalLight3D, наявного в сцені. Відтворення PhysicalSkyMaterial трохи дорожче порівняно з ProceduralSkyMaterial. Одночасно може бути до 1 сонця.

Панорамні зображення неба іноді називають HDRI (зображення з розширеним динамічним діапазоном). Ви можете знайти вільно ліцензовані HDRI на Poly Haven.

Примітка

Текстури HDR PanoramaSkyMaterial із дуже яскравими плямами (наприклад, реальні фотографії з видимим сонцем) можуть призвести до видимих блискіток навколишнього середовища та дзеркальних відображень. Це викликано надто високим піковим впливом текстури.

Щоб вирішити цю проблему, виберіть текстуру панорами в док-станції FileSystem, перейдіть до док-станції «Імпорт», увімкніть HDR Clamp Exposure і натисніть Повторно імпортувати.

Якщо вам потрібен спеціальний матеріал неба (наприклад, для процедурних хмар), ви можете створити спеціальний sky shader.

Навколишнє освітлення

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

Існує кілька типів зовнішнього освітлення на вибір:

  • Фон: Джерело навколишнього світла з фону, наприклад неба, спеціального кольору або чистого кольору (за умовчанням). Інтенсивність навколишнього освітлення змінюватиметься залежно від вмісту зображення неба, що може призвести до візуально привабливішого навколишнього освітлення. Щоб цей режим був видимим, небо має бути встановлено як фон.

  • Вимкнено: Не використовуйте навколишнє освітлення. Корисно для сцен виключно в приміщенні.

  • Колір: використовуйте постійний колір для навколишнього освітлення, ігноруючи фонове небо. Інтенсивність навколишнього освітлення буде однаковою з усіх боків, що може призвести до того, що освітлення сцени буде виглядати більш рівним. Корисно для сцен у приміщенні, де чорні тіні можуть бути надто темними, або для максимізації продуктивності на недорогих пристроях.

  • Небо: джерело навколишнього світла з указаного неба, навіть якщо для фону встановлено режим, відмінний від Неба. Якщо фоновим режимом уже є Небо, цей режим поводиться так само, як і Фон.

Коли для режиму навколишнього освітлення встановлено значення «Небо» або «Тло» (а для фону встановлено значення «Небо»), можна змішувати колір навколишнього середовища з небом за допомогою властивості Внесок неба. За замовчуванням це значення встановлено на 1.0, що означає, що використовується лише навколишнє небо. Колір навколишнього середовища ігнорується, якщо Внесок неба не зменшено нижче 1.0.

Ось порівняння того, як різне навколишнє світло впливає на сцену:

../../_images/environment_ambient2.webp

Нарешті, є параметр Енергія, який є множником. Це корисно при роботі з HDR.

Загалом, ви повинні покладатися лише на навколишнє освітлення для простих сцен або великих екстер’єрів. Ви також можете зробити це для підвищення продуктивності. Навколишнє світло швидко рендериться, але воно не забезпечує найкращої якості освітлення. Краще генерувати навколишнє світло з ReflectionProbe, VoxelGI або SDFGI, оскільки вони точніше імітують, як непряме світло поширюється. Нижче наведено порівняння, з точки зору якості, між використанням рівного навколишнього кольору та VoxelGI:

../../_images/environment_ambient_comparison.webp

Використання одного з методів, описаних вище, замінить постійне навколишнє освітлення на навколишнє освітлення від датчиків.

Відбите світло

Відбите світло (також називається дзеркальним світлом) є іншим із двох компонентів освітлення на основі зображення.

Для відбитого світла можна встановити один із 3 режимів:

  • Фон: відображення від фону, наприклад неба, спеціального кольору або чистого кольору (за умовчанням).

  • Вимкнено: Не відбиває світло від навколишнього середовища. Корисно для сцен виключно в приміщенні або для максимізації продуктивності на пристроях низького класу.

  • Небо: Відбивається від фону неба, навіть якщо для фону встановлено режим, відмінний від Неба. Якщо фоновим режимом уже є Небо, цей режим поводиться так само, як і Фон.

Переспрямування

Тонова карта вибирає алгоритм тонової карти, який буде застосовано до сцени, зі списку стандартних алгоритмів, що використовуються в кіно- та ігровій індустрії. Режими тонової карти, відмінні від Лінійного, використовуються для того, щоб зробити світлі та темні області більш однорідними, а також уникнути обрізання яскравих світлих ділянок. Кожен алгоритм має різні характеристики продуктивності, які слід враховувати під час вибору тонової карти.

Параметри тонування:

  • Режим: Режим тонального відображення, який слід використовувати.

    • Лінійний: Не змінює дані кольорів, що призводить до лінійної кривої тонального відображення, яка неприродно обрізає яскраві значення, через що яскраве освітлення виглядає пересиченим. Найпростіший і найшвидший засіб тонального відображення.

    • Reinhard: Проста крива тонального відображення, яка зменшує яскраві значення, щоб запобігти обрізанню. Це призводить до того, що зображення може виглядати тьмяним і низькоконтрастним. Повільніше, ніж лінійний режим. Якщо для Білого залишити значення за замовчуванням 1.0, Reinhard створює зображення, ідентичне лінійному.

    • Плівкоподібний: Використовує криву тонального відображення, подібну до плівкового, для запобігання обрізанню яскравих значень та забезпечення кращої контрастності, ніж у Reinhard. Трохи повільніше, ніж у Reinhard.

    • ACES: Використовує криву тонального відображення з високою контрастністю, подібну до плівкової, та знебарвлює яскраві значення для більш реалістичного вигляду. Трохи повільніше, ніж у режимі Filmic.

    • AgX: Використовує криву тонального відображення, подібну до плівки, та знебарвлює яскраві значення для більш реалістичного вигляду. Краще, ніж інші тональні відображення, зберігає відтінок кольорів, коли вони стають яскравішими. Найповільніший варіант тонального відображення.

  • Експозиція:** Налаштовує значення яскравості перед тим, як вони будуть передані тоновому мапперу. Вищі значення Експозиції призводять до яскравішого зображення. Значення, передані тоновому мапперу, також будуть помножені на 2.0 та 1.8 для Плівкової та ACES відповідно, щоб отримати подібну видиму яскравість, як і для лінійної.

  • White: The white reference value for tonemapping, which indicates where bright white is located in the scale of values provided to the tonemapper. For photorealistic lighting, recommended values are between 6.0 and 8.0. Higher values result in less blown out highlights, but may make the scene appear lower contrast. White is not available when using Linear. If you're using AgX, the mobile renderer, and HDR 2D is disabled, then the value set here will be ignored, and a value of 2.0 will be used instead.

  • AGX Contrast: Only available when using AgX. Increasing this makes dark values darker, and bright values brighter. It creates better results than the contrast option in the adjustment section at no additional performance cost.

Ефекти проміжної та пост-обробки

Ресурс Environment підтримує багато популярних ефектів середньої та постобробки.

Примітка

Ефекти екранного простору, такі як SSR, SSAO, SSIL і світіння не діють працювати з геометрією, яка розташована поза полем зору камери або закрита іншою непрозорою геометрією. Враховуйте це під час налаштування їхніх налаштувань, щоб уникнути відволікаючих змін під час гри.

Відображення в екранному просторі (SSR)

Ця функція доступна, лише якщо використовується рендерер Forward+, а не Mobile або Compatibility.

Хоча Godot підтримує кілька джерел даних про відображення, таких як Зонди відображень, вони можуть не надавати достатньо деталей для всіх ситуацій. Сценарії, коли відображення екранного простору мають найбільший сенс, коли об’єкти контактують один з одним (об’єкт над підлогою, над столом, плаваючий на воді тощо).

../../_images/environment_ssr.webp

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

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

Користувачам доступні кілька параметрів для налаштування цієї техніки:

  • Максимальна кількість кроків: Визначає максимальну довжину відбиття. Чим більше це число, тим дорожче його обчислити.

  • Fade In: Дозволяє регулювати криву поступового збільшення, що корисно, щоб зробити контактну зону м’якшою.

  • Затухання: Дозволяє регулювати криву згасання, щоб межа кроку плавно згасала.

  • Допуск до глибини: можна використовувати, щоб дозволити променям екранного простору проходити за об’єктами. Промені розглядатимуть кожен об’єкт так, ніби він має таку глибину, щоб визначити, чи може він пройти позаду об’єкта. Вищі значення призведуть до того, що відображення екранного простору виявлятимуть менше «розривів», за рахунок того, що деякі об’єкти створюватимуть фізично неправильні відображення.

Крім того, ви можете налаштувати якість SSR у налаштуваннях проекту, перемкнувши Рендеринг > Середовище > Відображення екранного простору > Половина розміру. За замовчуванням відображення екранного простору відображаються з половинною роздільною здатністю з міркувань продуктивності. Вимкнення цього налаштування призведе до відображення ефекту з повною роздільною здатністю, що покращує якість, але збільшує використання графічного процесора.

Примітка

Майте на увазі, що відображення в екранному просторі працюють лише для відображення непрозорої геометрії. Прозорі матеріали не відображатимуться, оскільки вони не записують дані в буфер глибини. Це також стосується шейдерів, які використовують уніформи hint_screen_texture або hint_depth_texture.

Екранно-просторова амбієнтна оклюзія (SSAO)

Ця функція доступна лише під час використання рендерерів Forward+ та Compatibility, а не для мобільних пристроїв..

Як згадувалося в розділі Навколишнє середовище, області, куди не потрапляє світло від світлових вузлів (через те, що вони знаходяться за межами радіуса або в тіні), освітлюються навколишнім світлом. Godot може симулювати це за допомогою VoxelGI, ReflectionProbe, неба або постійного кольору навколишнього середовища. Проблема, однак, полягає в тому, що всі запропоновані раніше методи діють більше на більшому масштабі (великі області), ніж на меншому геометричному рівні.

Постійний колір навколишнього середовища і Небо скрізь однакові, в той час як зонди GI і Reflection додають локальних деталей, але недостатньо для імітації ситуацій, коли світло не здатне заповнити внутрішні порожнечі, або вигини фігур.

Ось тут і приходить на допомогу Навколишня Оклюзія в Екранному Просторі. Як ви можете бачити на зображенні нижче, мета полягає в тому, щоб переконатися, що увігнуті області темніші, імітуючи більш вузький шлях для входу світла:

../../_images/environment_ssao.webp

Поширена помилка – увімкнути цей ефект, включити світло і не вміти його оцінити. Це тому, що SSAO діє лише на навколишнє світло. Не впливає на пряме світло.

Ось чому на зображенні вище ефект менш помітний під прямим світлом (зліва). Якщо ви хочете змусити SSAO також працювати з прямим світлом, використовуйте параметр Light Affect. Незважаючи на те, що це фізично неправильно, деяким художникам подобається, як це виглядає.

SSAO виглядає найкраще в поєднанні з реальним джерелом непрямого світла, як-от VoxelGI:

../../_images/environment_ssao2.webp

Налаштувати SSAO можна за допомогою кількох параметрів:

../../_images/environment_ssao_parameters.webp
  • Радіус: відстань, на якій об’єкти можуть закривати один одного під час розрахунку зовнішньої оклюзії екранного простору. Вищі значення призведуть до оклюзії на більшій відстані за рахунок продуктивності та якості.

  • Інтенсивність: основна інтенсивність зовнішнього закриття екранного простору. Діє як множник для ефекту оклюзії навколишнього простору екрану. Більше значення призводить до темнішої оклюзії. Оскільки SSAO є ефектом екранного простору, рекомендується залишатися консервативним із цим значенням. Надто сильний SSAO може відволікати під час гри.

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

  • Деталі: встановлює інтенсивність додаткового рівня деталізації для ефекту зовнішньої оклюзії екранного простору. Високе значення робить передачу деталей більш помітною, але це може сприяти зміщенню на кінцевому зображенні.

  • Горизонт: поріг для визначення того, чи дана точка на поверхні закрита чи не представлена як кут від горизонту, відображеного в діапазоні 0,0-1,0. Значення 1,0 призводить до відсутності оклюзії.

  • Різкість: ступінь розмивання країв об’єктів завдяки ефекту зовнішньої оклюзії екранного простору. Зависоке значення призведе до згладжування країв об’єктів. Якщо встановити занадто низьке значення, краї об’єкта будуть розмитими.

  • Вплив світла: Інтенсивність зовнішньої оклюзії екранного простору під прямим світлом. У реальному житті оклюзія навколишнього середовища застосовується лише до непрямого світла, що означає, що її вплив не можна побачити в прямому світлі. Значення, вищі за 0, зроблять ефект SSAO видимим у прямому світлі. Значення вище 0.0 не є фізично точними, але деякі художники віддають перевагу цьому ефекту.

  • Вплив каналу AO Інтенсивність оклюзії екранного простору на матеріалах, які мають визначену текстуру AO. Значення, вищі за 0.0, зроблять ефект SSAO видимим у областях, затемнених текстурами AO.

Крім того, ви можете налаштувати якість SSAO в розділі налаштувань проекту Рендеринг > Середовище > SSAO:

  • Якість: Встановлює якість ефекту оточуючого перекриття екранного простору. Вищі значення потребують більше семплів, тому якість буде кращою, але продуктивність буде знижена. Якщо встановити значення «Ультра», буде використано налаштування Адаптивна ціль (див. нижче).

  • Піврозмір: Якщо встановлено значення true, екранне просторове середовище для оточення буде відображатися в половинному розмірі, а потім масштабуватися перед додаванням до сцени. Це значно швидше, але може пропускати дрібні деталі. Якщо встановлено значення false, екранне просторове середовище для оточення буде відображатися в повному розмірі.

  • Адаптивна ціль: Цільова якість, яка використовується, коли для параметра Якість встановлено значення Ультра. Значення 0.0 забезпечує якість і швидкість, подібні до середньої, тоді як значення 1.0 забезпечує набагато вищу якість, ніж будь-який інший параметр, але за рахунок зниження продуктивності.

  • Проходи розмиття: Кількість проходів розмиття, які використовуються під час обчислення затемнення навколишнього середовища в екранному просторі. Більше число призведе до плавнішого вигляду, але обчислення буде повільнішим, а деталі на високих частотах будуть менш помітними.

  • Згасання з: Відстань, на якій ефект затемнення навколишнього середовища в просторі екрана починає зникати. Використовуйте цей параметр, щоб приховати затемнення навколишнього середовища здалеку.

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

Примітка

Починаючи з Godot 4.6, у рендерері сумісності доступна спрощена версія SSAO. Ця реалізація має інший вигляд, але повинна працювати значно краще на пристроях низького класу порівняно з SSAO у Forward+.

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

Непряме освітлення екранного простору (SSIL)

Ця функція доступна, лише якщо використовується рендерер Forward+, а не Mobile або Compatibility.

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

Натомість SSIL призначений для використання як доповнення до інших методів глобального освітлення, таких як VoxelGI, SDFGI і LightmapGI. SSIL також забезпечує тонкий ефект оклюзії навколишнього середовища, подібний до SSAO, але з меншою кількістю деталей.

Ця функція забезпечує лише непряме освітлення. Це не повне рішення глобального освітлення. Це відрізняє його від глобального освітлення екранного простору (SSGI), яке пропонують інші 3D-мережі. SSIL можна поєднати з SSR та/або SSAO для кращої якості зображення ( за вартістю виконання).

Налаштувати SSIL можна за допомогою кількох параметрів:

  • Радіус: відстань, яку може подолати відбите світло під час використання ефекту непрямого освітлення простору екрана. Більше значення призведе до того, що світло відбиватиметься далі в сцені, але може призвести до артефактів недостатньої дискретизації, які виглядатимуть як довгі шипи, що оточують джерела світла.

  • Інтенсивність: Коефіцієнт яскравості для ефекту непрямого освітлення екранного простору. Більше значення призведе до яскравішого світла.

  • Різкість: ступінь розмивання ефекту непрямого освітлення на екрані за краями об’єктів. Зависоке значення призведе до згладжування країв об’єктів. Якщо встановити занадто низьке значення, краї об’єкта будуть розмитими.

  • Нормальне відхилення: Рівень нормального відхилення, який використовується під час розрахунку непрямого освітлення екранного простору. Звичайне відхилення використовує нормаль заданої точки вибірки для відхилення зразків, спрямованих проти поточного пікселя. Звичайне відхилення необхідне, щоб уникнути витоку світла, коли освітлюється лише одна сторона об’єкта. Однак звичайне відхилення можна вимкнути, якщо витік світла є бажаним, наприклад, коли сцена здебільшого містить випромінювальні об’єкти, які випромінюють світло від облич, які не видно з камери.

Крім того, ви можете налаштувати якість SSIL у розділі Рендеринг > Середовище > SSIL налаштувань проекту:

  • Якість: Встановлює якість ефекту затемнення простору екрана. Вищі значення потребують більше вибірок, тому якість буде кращою, але з погіршенням продуктивності. Якщо встановити значення «Ультра», використовуватиметься налаштування Адаптивна ціль (див. нижче).

  • Піврозмір: Якщо встановлено значення true, екранне просторове середовище для оточення буде відображатися в половинному розмірі, а потім масштабуватися перед додаванням до сцени. Це значно швидше, але може пропускати дрібні деталі. Якщо встановлено значення false, екранне просторове середовище для оточення буде відображатися в повному розмірі.

  • Адаптивна ціль: Цільова якість, яка використовується, коли для параметра Якість встановлено значення Ультра. Значення 0.0 забезпечує якість і швидкість, подібні до середньої, тоді як значення 1.0 забезпечує набагато вищу якість, ніж будь-який інший параметр, але за рахунок продуктивності. Під час використання адаптивної цілі вартість продуктивності масштабується залежно від складності сцени.

  • Проходи розмиття: Кількість проходів розмиття, які використовуються під час обчислення непрямого освітлення в просторі екрана. Більше число призведе до плавнішого вигляду, але обчислення буде повільнішим, а деталізація високих частот буде меншою.

  • Загасання з: Відстань, на якій ефект непрямого освітлення екранного простору починає згасати. Використовуйте це, щоб приховати непряме освітлення екранного простору здалеку.

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

../../_images/environment_ssil.webp

Глобальне освітлення поля відстаней зі знаком (SDFGI)

Ця функція доступна, лише якщо використовується рендерер Forward+, а не Mobile або Compatibility.

Глобальне освітлення поля відстані зі знаком (SDFGI) є формою глобального освітлення в реальному часі. Це не ефект екранного простору, що означає, що він може забезпечувати глобальне освітлення елементів поза екраном (на відміну від SSIL).

Дивись також

Перегляньте Глобальне освітлення поля відстані зі знаком (SDFGI) для отримання інструкцій щодо налаштування цієї техніки глобального освітлення.

../../_images/environment_sdfgi.webp

Сяйво

Примітка

Під час використання методу рендерингу «Сумісність» світіння використовує іншу реалізацію, при якій деякі властивості недоступні та приховані від інспектора: Рівні, Нормалізовані, Інтенсивність, Режим змішування, Змішування, Карта та Інтенсивність карти.

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

У фотографії та плівці, коли кількість світла перевищує максимальну яскравість (яскравість), яку підтримує носій, воно зазвичай просочується назовні до темніших областей зображення. Це імітується в Godot за допомогою ефекту Світіння.

../../_images/environment_glow1.webp

За замовчуванням, навіть якщо ефект увімкнено, він буде слабким, або невидимим. Одна з двох умов потрібна для його відображення:

    1. Світло в пікселі перевищує Поріг HDR (де 0 означає, що все світло перевищує його, а 1,0 – світло, що перевищує значення Білого тонометричного відображення). Зазвичай це значення має бути 1,0, але його можна зменшити, щоб пропускати більше світла. Також існує додатковий параметр Масштаб HDR, який дозволяє масштабувати (робити яскравішим або темнішим) світло, що перевищує поріг.

../../_images/environment_glow_threshold.webp
    1. Властивість Bloom має значення більше за 0.0. Коли він збільшується, він надсилає весь екран до процесора світіння з більшою кількістю.

../../_images/environment_glow_bloom.webp

Обидва змусять світло почати розтікатися з яскравіших областей.

Як тільки світіння видно, його можна контролювати за допомогою декількох додаткових параметрів:

  • Інтенсивність – це загальна шкала ефекту, її можна зробити сильнішою або слабшою (при значенні 0,0 вона знімається).

  • Потужність – це те, наскільки сильно обробляється ядро фільтра Гауса. Більші значення роблять фільтр насиченим і розширюється назовні. Загалом змінювати це не потрібно, оскільки розмір можна налаштувати ефективніше за допомогою Рівнів.

В режимі накладання ефекту (Blend Mode) також можна змінити:

  • Additive є найсильнішим, оскільки він лише додає ефект світіння на зображення без змішування. Загалом він надто сильний, щоб його використовувати, але може добре виглядати з Bloom низької інтенсивності (створює ефект сну).

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

  • Softlight є типовим і найслабшим, опрацьовуючи лише тонкі порушення кольору навколо об'єктів. Цей режим найкраще працює на темних сценах.

  • Замінити можна використовувати для розмивання всього екрана або для налагодження ефекту. Він показує лише ефект світіння без зображення нижче.

  • Змішувати змішує ефект світіння з основним зображенням. Це можна використовувати для більшого художнього контролю. Коефіцієнт змішування контролюється властивістю Mix, яка відображається над режимом змішування (тільки якщо для режиму змішування встановлено значення Mix). Високі значення коефіцієнта змішування будуть затемнювати зображення, якщо не збільшити Bloom.

Щоб змінити розмір і форму ефекту світіння, Godot надає рівні Levels. Менші рівні - це сильні світіння, які з'являються навколо об'єктів, тоді як великі рівні туманні світіння, що охоплюють весь екран:

../../_images/environment_glow_layers.webp

Справжня сила цієї системи, однак, полягає в об'єднанні рівнів для створення цікавіших моделей світіння:

../../_images/environment_glow_layers2.webp

Нарешті, ефектом світіння можна керувати за допомогою карти світіння, яка є текстурою, яка визначає, наскільки яскравим має бути світіння на кожній частині екрана. Цю текстуру можна додатково пофарбувати, щоб відтінити ефект світіння відповідно до кольору карти світіння. Текстура розтягується, щоб відповідати вікну перегляду, тому для уникнення видимих спотворень рекомендується використовувати співвідношення сторін, яке збігається з найпоширенішим співвідношенням сторін вашого вікна перегляду (наприклад, 16:9).

Існує 2 основні випадки використання текстури карти світіння:

  • Створіть ефект «бруду лінзи», використовуючи текстуру візерунка бруду.

  • Зменште світіння певних частин екрана за допомогою градієнтної текстури.

../../_images/environment_glow_map.webp

За замовчуванням, світіння використовує бікубічний фільтр масштабування на настільних комп’ютерах і білінійний фільтр масштабування на мобільних платформах. Бікубічний фільтр масштабування забезпечує вищу якість з менш блочним виглядом, але він має значні втрати продуктивності для графічного процесора, що може бути значним на інтегрованій графіки. Режим масштабування можна контролювати за допомогою налаштування проекту Рендеринг > Середовище > Світіння > Режим масштабування. Це налаштування ефективне лише під час використання рендерерів Forward+ або Mobile, оскільки Compatibility використовує іншу реалізацію світіння.

../../_images/environment_and_post_processing_glow_scale_mode.webp

Використання світіння в 2D

Є 2 способи використання світіння в 2D:

  • Починаючи з Godot 4.2, ви можете ввімкнути HDR для 2D-рендерингу під час використання методів рендерингу Forward+ та Mobile. Це знижує продуктивність, але дозволяє розширити динамічний діапазон. Це також дозволяє контролювати, які об'єкти світяться, використовуючи їхні індивідуальні властивості Modulate або Self Modulate (використовуйте повзунок Intensity у палітрі кольорів). Увімкнення HDR також може зменшити смуги у виході 2D-рендерингу.

    • Щоб увімкнути HDR у 2D, відкрийте налаштування проекту, увімкніть Rendering > Viewport > HDR 2D, а потім перезапустіть редактор.

  • Якщо ви хочете максимізувати продуктивність, ви можете залишити HDR вимкненим для 2D-рендерінгу. Однак у вас буде менше контролю над тим, які об’єкти світяться.

    • Увімкніть світіння, встановіть фоновий режим середовища на Полотно, а потім зменшіть Поріг світіння HDR, щоб пікселі, які не є надто яскравими, світилися. Щоб елементи інтерфейсу користувача не світилися, зробіть їх дочірніми для вузла CanvasLayer. Ви можете контролювати, на які шари впливає світіння, використовуючи властивість Background > Canvas Max Layer ресурсу Environment.

Приклад використання світіння у 2D сцені

Приклад використання світіння у 2D-сцені. HDR 2D увімкнено, тоді як для монет і кулі властивість Модуляція збільшено до значень надмірної яскравості за допомогою повзунка Інтенсивність у палітрі кольорів.

Попередження

Засіб 2D візуалізації відображається в лінійному просторі кольорів, якщо ввімкнено налаштування проекту Rendering > Viewport > HDR 2D, тому підказку source_color потрібно також використовувати для однорідних вибірок, які використовуються як вхідні дані кольору в шейдерах canvas_item. Якщо цього не зробити, текстура буде виглядати розмитою.

Якщо 2D HDR вимкнено, source_color продовжуватиме належну роботу в canvas_item шейдерах, тому рекомендується використовувати його, коли це доречно, у будь-якому випадку.

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

Використання світіння для розмиття екрана

Свічення можна використовувати для розмиття всього вікна перегляду, що корисно для розмиття фону, коли відкрито меню. Це вплине лише на 3D-візуалізацію, якщо фоновий режим середовища не встановлено на Полотно. Щоб запобігти розмиванню елементів інтерфейсу під час використання фонового режиму Canvas, зробіть їх дочірніми для вузла CanvasLayer. Ви можете контролювати, на які шари впливає цей ефект розмиття, використовуючи властивість Фон > Максимальний шар полотна ресурсу середовища.

Щоб використовувати світіння як розмиття:

  • Увімкніть Normalized і відрегулюйте рівні відповідно до уподобань. Збільшення індексів вищого рівня призведе до більш розмитого зображення. Рекомендується залишити один рівень світіння 1.0, а всі інші рівні світіння 0.0, але це не обов’язково. Зауважте, що кінцевий вигляд буде відрізнятися залежно від роздільної здатності вікна перегляду.

  • Встановіть Інтенсивність на 1.0 і Цвітіння на 1.0.

  • Встановіть режим змішування на Замінити і HDR Luminance Cap на 1.0.

Приклад використання світіння для розмиття 2D-візуалізації на фоні меню

Приклад використання світіння для розмиття 2D-візуалізації на фоні меню

Туман

Примітка

У цьому розділі йдеться лише про необ’ємний туман. Можна використовувати як необ'ємний туман, так і Об'ємний туман і об'єми туману одночасно.

Туман, як і в реальному житті, змушує віддалені об'єкти зникати в однорідний колір. У Godot є два види туману:

  • Глибинний туман: Цей ефект застосовується залежно від відстані від камери.

  • Висотний туман: Цей метод застосовується до будь-яких об'єктів нижче (або вище) певної висоти, незалежно від відстані від камери.

../../_images/environment_fog_depth_height.webp

Обидва ці типи туману можна налаштувати, зробивши їхній перехід більш або менш різким.

Два параметри можна налаштувати, щоб зробити ефект туману цікавішим:

Перший — це Розсіювання сонячного світла, яке використовує колір та енергію DirectionalLight3D у поточній сцені. Якщо дивитися на спрямоване світло (зазвичай сонце), туман буде тонуватися відповідно до кольору світла, щоб імітувати проходження сонячного світла крізь туман.

Другий варіант — Повітряна перспектива, який тонує колір туману відповідно до кольору неба, щоб краще поєднувати небо з фоном. Вищі значення призведуть до більшого тонування, при цьому значення 1.0 повністю замінює звичайний колір туману повітряною перспективою. Це можна використовувати на великих рівнях відкритого світу, щоб забезпечити краще відчуття глибини або уникнути розривів кольорів між небом і туманом.

Якщо і Розсіювання сонця, і Повітряна перспектива перевищують 0.0, розсіювання сонця застосовується поверх повітряної перспективи.

Примітка

Туман може спричинити появу смуг у вікні перегляду, особливо при вищих рівнях щільності. Перегляньте Розшарування кольорів, щоб отримати вказівки щодо зменшення смуг.

Об'ємний туман

Об’ємний туман створює реалістичний ефект туману на сцені, при цьому колір туману залежить від світла, яке проходить через туман.

Дивись також

Перегляньте Об'ємний туман і об'єми туману документацію щодо налаштування об’ємного туману.

Коригування

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

../../_images/environment_adjustments.webp

Базові налаштування BCS

Перше налаштування — це можливість змінити типові властивості Яскравість, Контрастність і Насиченість:

../../_images/environment_adjustments_bcs.webp

Корекція кольору за допомогою 1D градієнта

Друге коригування здійснюється за допомогою градієнта корекції кольору. Це можна зробити, призначивши ресурс GradientTexture1D властивості Color Correction або завантаживши текстуру, що містить горизонтальний градієнт. Крайня ліва частина градієнта представляє чорний колір у вихідному зображенні, тоді як крайня права частина градієнта представляє білий колір у вихідному зображенні.

Лінійний градієнт від чорного до білого, як наведений нижче, не матиме ефекту:

../../_images/environment_adjustments_default_gradient.webp

Але створення користувацьких дозволить зіставити кожен канал з іншим кольором:

../../_images/environment_adjustments_custom_gradient.webp

Корекція кольору за допомогою 3D LUT

Для корекції кольору також можна використовувати 3D текстуру перегляду (LUT). Це спеціальна текстура, яка використовується для зміни кожного каналу кольорів окремо один від одного (червоний, зелений, синій). Це зображення може мати будь-яку роздільну здатність, але оскільки корекція кольору є низькочастотними даними, радимо дотримуватися низької роздільної здатності з міркувань продуктивності. Роздільна здатність текстури LUT зазвичай становить 17×17×17, 33×33×33, 51×51×51 або 65×65×65 (непарний розмір забезпечує кращу інтерполяцію).

Щоб це працювало, режим імпорту текстури пошуку має бути встановлено на Texture3D у доку Import (замість імпорту як звичайної Texture2D):

../../_images/environment_adjustments_3d_lut_import.webp

Обов’язково також налаштуйте кількість горизонтальних і вертикальних сегментів для імпорту. Якщо ви цього не зробите, текстура LUT не вплине належним чином на вікно перегляду під час використання. Ви можете переглянути, як було імпортовано 3D-текстуру, двічі клацнувши її в док-станції FileSystem, а потім перейшовши до інспектора, щоб прогортати шари текстури.

Ви можете використовувати цей нейтральний шаблон 33×33×33 LUT як основу (клацніть правою кнопкою миші та виберіть Зберегти як…):

../../_images/environment_adjustments_3d_lut_template.webp

З наведеним вище шаблоном LUT після зміни його режиму імпорту на Texture3D встановіть для нього кількість горизонтальних фрагментів на 33 у доку «Імпорт», а потім натисніть Повторний імпорт. Якщо ви завантажите цей LUT у властивість Color Correction, ви наразі не побачите жодної видимої різниці, оскільки ця текстура створена як нейтральна початкова точка.

Цей шаблон LUT можна змінити в редакторі зображень, щоб створити інший настрій зображення. Звичайний робочий процес полягає в тому, щоб розмістити зображення LUT поруч зі знімком екрана 3D вікна перегляду проекту, а потім використовувати редактор зображень, щоб змінити як зображення LUT, так і знімок екрана одночасно. Потім LUT можна зберегти та застосувати до ігрового движка для виконання тієї самої корекції кольору в режимі реального часу.

Наприклад, зміна шаблону LUT у редакторі зображень, щоб надати йому вигляду «сепія», призводить до зображення праворуч:

../../_images/environment_adjustments_3d_lut_comparison.webp

Примітка

Коригування та корекція кольору застосовуються після тонального відображення. Це означає, що властивості відображення тонів, визначені вище, все ще мають ефект, коли коригування ввімкнено.

Параметри атрибутів камери

Godot has two kinds of camera attributes, physical and practical. When using CameraAttributesPhysical instead of CameraAttributesPractical, depth of field is automatically computed from the camera attributes' focus distance, focal length, and aperture. In addition, Frustum options are available.

Глибина різкості / Далеке розмиття

Цей ефект імітує фокусну відстань на камерах. Він розмиває об’єкти за заданим діапазоном. Він має початкову Відстань із областю Переходу (у світових одиницях):

../../_images/environment_dof_far.webp

Параметр Amount контролює ступінь розмиття. Для більшого розмиття може знадобитися налаштувати якість глибини різкості в розширених налаштуваннях проекту, щоб уникнути артефактів.

Глибина різкості / Близьке розмиття

Цей ефект імітує фокусну відстань на камерах. Він розмиває об’єкти поблизу камери (діє у протилежному напрямку, ніж розмиття). Він має початкову Відстань із областю Переходу (у світових одиницях):

../../_images/environment_dof_near.webp

Параметр Amount контролює ступінь розмиття. Для більшого розмиття може знадобитися налаштувати якість глибини різкості в розширених налаштуваннях проекту, щоб уникнути артефактів.

Зазвичай обидва розмиття використовують разом, щоб сфокусувати увагу глядача на певному об'єкті або створити так званий ефект "зсуву нахилу" <https://en.wikipedia.org/wiki/Miniature_faking>`__.

../../_images/environment_mixed_blur.webp

Контакт

Це в рази збільшує загальну яскравість сцени, видимої з камери. Вищі значення призводять до візуально яскравішої сцени.

Автоекспозиція

Ця функція доступна, лише якщо використовується рендерер Forward+, а не Mobile або Compatibility.

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

Примітка

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

../../_images/environment_hdr_autoexp.webp

Найпростіший спосіб використовувати автоматичну експозицію - переконатися, що зовнішнє світло (або інше сильне світло) має енергію понад 1,0. Це робиться шляхом налаштування їх множника Energy (на самому Світлі). Щоб зробити все послідовним, Небо Sky, як правило, також має використовувати множник енергії, щоб підходити спрямованому світлу. Як правило, значень від 3,0 до 6,0 достатньо, щоб імітувати умови внутрішнього та зовнішнього виду.

Якщо поєднати автоматичну експозицію з постобробкою Сяйво, пікселі, які виходять за межі тонової карти White, переливатимуться в буфер світіння, створюючи типовий для фотографії ефект цвітіння.

../../_images/environment_hdr_bloom.webp

Значення, які користувач може керувати в розділі «Автоматична експозиція», мають розумні значення за замовчуванням, але ви все ще можете їх налаштувати:

../../_images/environment_hdr.webp
  • Масштаб: Значення для масштабування освітлення. Вищі значення створюють яскравіші зображення, а нижчі – темніші.

  • Мінімальна чутливість/мінімальне значення експозиції: Мінімальна яскравість, яку намагатиметься налаштувати автоматична експозиція (в ISO за використання CameraAttributesPractical або EV100 за використання CameraAttributesPhysical). Яскравість – це середнє значення світла в усіх пікселях екрана.

  • Максимальна чутливість/максимальне значення експозиції: максимальна яскравість, яку намагатиметься налаштувати автоматична експозиція (в ISO за використання CameraAttributesPractical або EV100 за використання CameraAttributesPhysical).

  • Швидкість: швидкість, з якою яскравість коригується сама. Чим вище значення, тим швидше відбувається корекція яскравості. Високі значення можуть більше підходити для швидких ігор, але в деяких ситуаціях можуть відволікати увагу.

У разі використання CameraAttributesPractical експозиція встановлюється з використанням чутливості, визначеної в ISO, замість значення експозиції в EV100. Типові значення ISO становлять від 50 до 3200, при цьому вищі значення призводять до вищої кінцевої експозиції. У реальному житті для денної фотографії зазвичай використовуються значення ISO від 100 до 800.

Дивись також

Перегляньте Блоки фізичного освітлення та камери, якщо ви бажаєте використовувати реальні одиниці для налаштування експозиції камери, поля зору та глибини різкості.