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.
Checking the stable version of the documentation...
Блоки фізичного освітлення та камери
Навіщо використовувати фізичне освітлення та камери?
Godot використовує довільні одиниці для багатьох фізичних властивостей світла, таких як колір, енергія, поле зору камери та експозиція. За замовчуванням у цих властивостях використовуються довільні одиниці, оскільки використання точних фізичних одиниць пов’язане з кількома компромісами, які не варті того для багатьох ігор. Оскільки Godot за замовчуванням віддає перевагу простоті використання, фізичні освітлювальні прилади вимкнено за замовчуванням.
Переваги фізичних одиниць
Якщо ви прагнете фотореалізму у своєму проекті, використання реальних одиниць світу як основи може допомогти полегшити налаштування. Посилання на матеріали реального світу, освітлення та яскравість сцени дуже доступні на таких веб-сайтах, як Physically Based.
Використання одиниць реального світу в Godot також може бути корисним під час перенесення сцени з іншого 3D-програмного забезпечення, яке використовує фізичні світлові одиниці (наприклад, Blender).
Недоліки фізичних одиниць
Найбільшим недоліком використання фізичних освітлювальних приладів є те, що вам доведеться звернути пильну увагу на динамічний діапазон, який використовується в певний момент часу. Ви можете зіткнутися з помилками точності з плаваючою комою, змішуючи дуже високу і дуже низьку інтенсивність світла.
На практиці це означає, що вам доведеться вручну керувати параметрами експозиції, щоб переконатися, що ви не надто переекспонуєте або недоекспонуєте сцену. Автоматична експозиція може допомогти вам збалансувати світло в сцені, щоб привести його в нормальний діапазон, але вона не може відновити втрачену точність із надто високого динамічного діапазону.
Використання фізичного освітлення та камери автоматично не зробить ваш проект кращим. Іноді відхід від реалізму дійсно може зробити сцену кращою для людського ока. Крім того, використання фізичних одиниць вимагає більшої точності порівняно з нефізичними одиницями. Більшість переваг фізичних одиниць можна отримати, лише якщо одиниці правильно налаштовано відповідно до реальних стандартів.
Примітка
Фізичні освітлювальні прилади доступні лише у 3D-візуалізації, а не у 2D.
Налаштування фізичних світлових блоків
Блоки фізичного освітлення можна вмикати окремо від блоків фізичної камери.
Щоб правильно ввімкнути фізичні освітлювальні прилади, потрібно виконати 4 кроки:
Увімкніть налаштування проекту.
Налаштуйте камеру.
Налаштуйте середовище.
Налаштуйте вузли Light3D.
Оскільки блоки фізичного освітлення та камери вимагають лише кількох обчислень для обробки одиниць перетворення, їх увімкнення не має жодного помітного впливу на продуктивність ЦП. Однак на стороні графічного процесора фізичні камери наразі забезпечують глибину різкості. Це має помірний вплив на продуктивність. Щоб зменшити цей вплив на продуктивність, якість глибини різкості можна зменшити в розширених параметрах проекту.
Увімкніть налаштування проекту
Відкрийте параметри проекту, увімкніть перемикач Додатково, а потім увімкніть Відтворення > Світло та тіні > Використовувати фізичні світлові одиниці. Перезапустіть редактор.
Налаштувати камеру
Попередження
Коли ввімкнено фізичні світлові одиниці та якщо у вашій сцені є вузол WorldEnvironment (тобто середовище редактора вимкнено), ви повинні мати ресурс CameraAttributes, призначений вузлу WorldEnvironment. В іншому випадку вікно перегляду 3D-редактора виглядатиме надзвичайно яскравим, якщо у вас є видимий вузол DirectionalLight3D.
У вузлі Camera3D ви можете додати ресурс CameraAttributes до його властивості Attributes. Цей ресурс використовується для керування глибиною різкості та експозицією камери. При використанні CameraAttributesPhysical його властивість фокусної відстані також використовується для налаштування поля огляду камери.
Коли ввімкнено фізичні світлові одиниці, у розділі Exposure CameraAttributesPhysical стають доступними наступні додаткові властивості:
Діафрагма: Розмір діафрагми камери, виміряний у діафрагмах. Діафрагма — це безрозмірне співвідношення між фокусною відстанню камери та діаметром діафрагми. Значення високої діафрагми призведе до меншої діафрагми, що призводить до тьмянішого зображення та чіткішого фокусування. Низька діафрагма створює широку діафрагму, яка пропускає більше світла, що призводить до яскравішого та менш сфокусованого зображення.
Швидкість затвора: час відкриття та закриття затвора, виміряний у обернених секундах (
1/N). Нижче значення пропускатиме більше світла, що призведе до яскравішого зображення, тоді як вище значення пропускатиме менше світла, що призведе до темнішого зображення. Під час отримання або встановлення цієї властивості за допомогою сценарію одиниця вимірюється в секундах замість зворотних секунд.Чутливість: Чутливість датчиків камери, виміряна в ISO. Вища чутливість забезпечує яскравіше зображення. Коли ввімкнено автоматичну експозицію, це можна використовувати як метод компенсації експозиції. Подвоєння значення збільшить значення експозиції (виміряне в EV100) на 1 стоп.
Множник: нефізичний множник експозиції. Вищі значення підвищать яскравість сцени. Це можна використовувати для коригування після обробки або для цілей анімації.
Значення Діафрагми за замовчуванням у 16 f-стоп підходить для вулиць удень (тобто для використання з DirectionalLight3D за замовчуванням). Для внутрішнього освітлення більше підходить значення від 2 до 4.
Типова швидкість затвора, яка використовується у фотографії та кінозйомці, становить 1/50 (0,02 секунди). Для нічної фотозйомки зазвичай використовується витримка близько 1/10 (0,1 секунди), тоді як для спортивної фотографії використовується швидкість затвора від 1/250 (0,004 секунди) до 1/1000 (0,001 секунди), щоб зменшити розмиття під час руху.
У реальному житті чутливість зазвичай встановлюється від 50 ISO до 400 ISO для денної фотозйомки на відкритому повітрі залежно від погодних умов. Вищі значення використовуються для зйомки в приміщенні або вночі.
Примітка
На відміну від реальних камер, несприятливі наслідки збільшення чутливості ISO або зменшення витримки (наприклад, видима зернистість або світлові сліди) не моделюються в Godot.
Перегляньте Налаштування фізичних камер для опису властивостей CameraAttributesPhysical, які також доступні, коли не використовуються фізичні освітлювальні одиниці.
Налаштувати середовище
Попередження
Конфігурація за замовчуванням призначена для денних сцен на вулиці. Щоб сцени вночі та в приміщенні виглядали правильно, у DirectionalLight3D та WorldEnvironment потрібно налаштувати інтенсивність фону. Інакше позиційні вогні будуть ледь помітні за стандартної інтенсивності.
Якщо ви ще не додали вузол class_WorldEnvironment і Camera3D до поточної сцени, зробіть це зараз, клацнувши 3 вертикальні точки у верхній частині вікна перегляду 3D-редактора. Натисніть Додати сонце до сцени, знову відкрийте діалогове вікно та натисніть Додати середовище до сцени.
Після ввімкнення фізичних освітлювальних одиниць нова властивість стає доступною для редагування в ресурсі Environment:
Інтенсивність фону: Інтенсивність фону неба в нітах (канделах на квадратний метр). Це також впливає на навколишнє та відбите світло, якщо для відповідних режимів встановлено значення Фон. Якщо встановлено спеціальну Енергію фону, ця енергія помножується на інтенсивність.
Налаштуйте світлові вузли
Після ввімкнення фізичних світлових блоків у вузлах Light3D стають доступними 2 нові властивості:
Інтенсивність: інтенсивність світла в люксах (DirectionalLight3D) або люменах (OmniLight3D/SpotLight3D). Якщо встановлено спеціальну Енергію, ця енергія помножується на інтенсивність.
Температура: колірна температура світла, визначена в Кельвінах. Якщо встановлено спеціальний Колір, цей колір множиться на колірну температуру.
Інтенсивність OmniLight3D/SpotLight3D
Люмен — це міра світлового потоку, яка є загальною кількістю видимого світла, випромінюваного джерелом світла за одиницю часу.
Для SpotLight3D ми припускаємо, що область за межами видимого конуса оточена ідеальним світлопоглинаючим матеріалом. Відповідно, видима яскравість області конуса не змінюється, коли конус збільшується і зменшується в розмірі.
Яскравість звичайної домашньої лампочки може варіюватися від 600 до 1200 люмен. Свічка має близько 13 люменів, тоді як вуличний ліхтар може мати приблизно 60000 люменів.
Інтенсивність DirectionLight3D
Люкс - це міра світлового потоку на одиницю площі, вона дорівнює одному люмену на квадратний метр. Люкс - це міра того, скільки світла потрапляє на поверхню в певний момент часу.
За допомогою DirectionalLight3D у ясний сонячний день поверхня під прямим сонячним світлом може отримати приблизно 100 000 люкс. Типова кімната в будинку може отримувати приблизно 50 люкс, тоді як освітлена місячним світлом земля може отримувати приблизно 0,1 люкс.
Колірна температура
6500 кельвінів - це білий колір. Вищі значення призводять до холодніших (блакитніших) кольорів, тоді як нижчі значення призводять до тепліших (більш помаранчевих) кольорів.
Температура сонця в похмурий день становить приблизно 6500 кельвінів. У ясний день температура сонця становить від 5500 до 6000 Кельвінів. У ясний день на сході чи заході сонце має температуру близько 1850 Кельвінів.
Діаграма колірної температури від 1000 Кельвінів (ліворуч) до 12500 Кельвінів (праворуч)
Інші властивості Light3D, такі як Енергія та Колір, залишаються доступними для редагування для цілей анімації та коли час від часу потрібно створити світло з нереалістичними властивостями.
Налаштування фізичних камер
Блоки фізичної камери можна вмикати окремо від блоків фізичного освітлення.
Після додавання ресурсу CameraAttributesPhysical до властивості Camera Attributes вузлів Camera3D деякі властивості, наприклад FOV, більше не можна буде редагувати. Натомість ці властивості тепер регулюються властивостями CameraAttributesPhysical, такими як фокусна відстань і діафрагма.
CameraAttributesPhysical пропонує такі властивості у своєму розділі Frustum:
Фокусна відстань: Відстань від камери до об’єкта, який буде у фокусі, вимірюється в метрах. Внутрішньо це буде обмежено, щоб принаймні на 1 міліметр було більше, ніж Фокусна відстань.
Фокусна відстань: Відстань між об’єктивом камери та діафрагмою камери, виміряна в міліметрах. Керує полем зору та глибиною різкості. Більша фокусна відстань призведе до меншого поля зору та меншої глибини різкості, тобто менше об’єктів буде у фокусі. Менша фокусна відстань призведе до ширшого поля зору та більшої глибини різкості, що означає, що у фокусі буде більше об’єктів. Ця властивість замінює властивості Camera3D FOV і Keep Aspect, роблячи їх доступними лише для читання в інспекторі.
Близько/Далеко: Близька та далека відстань у метрах. Вони поводяться так само, як однойменні властивості Camera3D. Нижчі значення Near дозволяють камері відображати об’єкти, які знаходяться дуже близько, ціною потенційних проблем із точністю (Z-fighting) на відстані. Вищі значення Far дозволяють камері бачити далі, також ціною потенційних проблем із точністю (Z-fighting) на відстані.
Стандартна фокусна відстань 35 мм відповідає ширококутному об’єктиву. Це все ще призводить до поля зору, яке помітно вужче порівняно зі стандартним «практичним» вертикальним кутом огляду 75 градусів. Це пояснюється тим, що випадки використання, не пов’язані з іграми, такі як створення фільмів і фотографія, сприяють використанню вужчого поля зору для більш кінематографічного вигляду.
Загальні значення фокусної відстані, які використовуються у кіно та фотографії:
Риб'яче око (надширокий кут): Менше 15 мм. Майже не видно глибини різкості.
Ширококутний: Від 15 до 50 мм. Зменшена глибина різкості.
Стандарт: Від 50 мм до 100 мм. Стандартна глибина різкості.
Телефото: Більше 100 мм. Збільшена глибина різкості.
Як і під час використання режиму Зберігати висоту, ефективне поле зору залежить від співвідношення сторін вікна перегляду, причому ширші співвідношення сторін автоматично призводять до ширшого горизонтального поля зору.
Автоматичне налаштування експозиції на основі середнього рівня яскравості камери також можна ввімкнути в розділі Автоекспозиція з такими властивостями:
Мінімальна чутливість: найтемніша яскравість, яку дозволено досягти камері, вимірюється в EV100.
Максимальна чутливість: найяскравіше, яке може досягти камера, вимірюється в EV100.
Швидкість: швидкість ефекту автоматичної експозиції. Впливає на час, необхідний камері для виконання автоматичної експозиції. Вищі значення забезпечують швидші переходи, але результуючі налаштування можуть виглядати відволікаючими залежно від сцени.
Шкала: Масштаб ефекту автоматичної експозиції. Впливає на інтенсивність автоматичної експозиції.
EV100 – це значення експозиції (EV), виміряне за чутливості ISO 100. Перегляньте цю таблицю для поширених значень EV100 у реальному житті.