ReflectionProbe
Успадковує: VisualInstance3D < Node3D < Node < Object
Захоплює його оточення для створення швидкого, точного відображення з даної точки.
Опис
Захоплює своє оточення як кубічну карту та зберігає її версії зі зростаючим рівнем розмиття для імітації різних шорсткостей матеріалу.
ReflectionProbe використовується для створення високоякісних відбиттів з низькими витратами на продуктивність (коли update_mode має значення UPDATE_ONCE). ReflectionProbe можна плавно змішувати разом та з рештою сцени. ReflectionProbe також можна поєднувати з VoxelGI, SDFGI (Environment.sdfgi_enabled) та відображеннями екранного простору (Environment.ssr_enabled) для отримання точніших відбиттів у певних областях. ReflectionProbe відображають усі об'єкти в межах їх cull_mask, тому їх оновлення може бути досить дорогим. Найкраще оновити їх один раз важливими статичними об'єктами, а потім залишити їх як є.
Примітка: На відміну від VoxelGI та SDFGI, ReflectionProbe отримують своє середовище лише з вузла WorldEnvironment. Якщо ви вкажете ресурс Environment у вузлі Camera3D, ReflectionProbe ігноруватиме його. Це може призвести до неправильного освітлення в ReflectionProbe.
Примітка: Під час використання методу мобільного рендерингу, на кожному ресурсі сітки може відображатися лише 8 зондів відбиття, тоді як метод рендерингу сумісності підтримує лише до 2 зондів відбиття на кожній сітці. Спроба відобразити більше ніж 8 зондів відбиття на одному ресурсі сітки за допомогою мобільного рендерера призведе до мерехтіння зондів відбиття під час руху камери, тоді як рендерер сумісності не відтворюватиме жодних додаткових зондів, якщо використовується більше ніж 2 зондів відбиття.
Примітка: Під час використання методу мобільного рендерингу, зонди відбиття коректно впливатимуть лише на ті сітки, видимість яких AABB перетинається з AABB зонда відбиття. Якщо використовується шейдер для деформації сітки таким чином, що вона виходить за межі свого AABB, необхідно збільшити значення GeometryInstance3D.extra_cull_margin на сітці. В іншому випадку зонд відбиття може бути невидимим на сітці.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Переліки
enum UpdateMode: 🔗
UpdateMode UPDATE_ONCE = 0
Оновити зонд один раз на наступну раму (повідомлення для більшості об'єктів). Відповідна карта випромінювань буде сформована над наступним шістьма кадрами. Це займає більше часу для оновлення, ніж UPDATE_ALWAYS, але має меншу вартість виконання і може призвести до більш якісного відображення. ВідображенняПробе оновлюється при перетворенні змін, але не при зміні геометрії. Ви можете змусити оновлення ReflectionProbe шляхом переміщення ReflectionProbe злегка в будь-якому напрямку.
UpdateMode UPDATE_ALWAYS = 1
Оновити зонд кожного кадру. Це забезпечує кращі результати для швидкознімних динамічних об'єктів (наприклад, автомобілів). Тим не менш, має суттєву вартість виконання. У зв'язку з вартістю, рекомендується використовувати тільки один ВідображенняПробе з UPDATE_ALWAYS на більшості за лаштунками. Для всіх інших випадків використання UPDATE_ONCE.
enum AmbientMode: 🔗
AmbientMode AMBIENT_DISABLED = 0
Не застосуйте будь-яке освітлення навколишнього середовища всередині коробки ReflectionProbe, визначеної його size.
AmbientMode AMBIENT_ENVIRONMENT = 1
Застосувати автоматичне освітлення навколишнього середовища всередині коробки ReflectionProbe, визначеної його size.
AmbientMode AMBIENT_COLOR = 2
Застосуйте власне навколишнє освітлення всередині блоку ReflectionProbe, визначеного його розміром size. Див. ambient_color та ambient_color_energy.
Описи властивостей
Color ambient_color = Color(0, 0, 0, 1) 🔗
Власний колір оточення, який використовуватиметься в межах блоку ReflectionProbe, визначеного його розміром size. Діє лише тоді, коли ambient_mode має значення AMBIENT_COLOR.
float ambient_color_energy = 1.0 🔗
Енергія власного кольору навколишнього середовища, яка використовується в межах поля ReflectionProbe, визначеного його розміром size. Діє лише тоді, коли ambient_mode має значення AMBIENT_COLOR.
AmbientMode ambient_mode = 1 🔗
void set_ambient_mode(value: AmbientMode)
AmbientMode get_ambient_mode()
Колір оточення, який буде використовуватися в межах поля ReflectionProbe, визначеного параметром size. Колір оточення буде плавно поєднуватися з іншими ReflectionProbe та рештою сцени (поза межами поля ReflectionProbe, визначеного параметром size).
Визначає відстань у метрах, на якій зонд зливається зі сценою.
Якщо true, увімкнено проекцію коробки. Це робить рефлексію більш правильним у прямокутно-подібних кімнатах, відключаючи центр відображення залежно від розташування камери.
Примітка: Щоб краще підходять прямокутні номери, які не вирівнюються до сітки, можна обертати вузол ReflectionProbe.
Налаштовує куляну маску, яка визначає, які об'єкти намальовані цим зондом. Кожен VisualInstance3D з шаром, що входить в цю маску для кулі, буде подано зондом. Найкраще включати великі об'єкти, які, ймовірно, приймають багато місця в рефлексії, щоб заощадити на рендерингу вартість.
Це також може бути використаний для запобігання об'єкта від відображення на себе (наприклад, ReflectionProbe, розташованого на транспортному забезпеченні).
Якщо true, обчислює тіні в рефлекторі. Це робить рефлектор для рендерингу; ви можете відключити це, якщо за допомогою UPDATE_ALWAYS update_mode.
Визначає інтенсивність відображення. Інтенсивність модулює міцність відбиття.
Якщо true, відбиття ігнорувати неба.
Максимальна відстань від ReflectionProbe об'єкт може бути до того, як він культивований. Визначте це для підвищення продуктивності, особливо при використанні UPDATE_ALWAYS update_mode.
Примітка: Максимальна відстань відбиття завжди не менше, ніж дорівнює мірам пробе. Це означає, що зменшення max_distance не завжди ліктьові об'єкти з відбиття, особливо якщо коробка відбиття, визначена його size вже велика.
float mesh_lod_threshold = 1.0 🔗
Автоматичне зміщення LOD, яке використовується для сіток, що відображаються в ReflectionProbe (аналог Viewport.mesh_lod_threshold). Вищі значення використовуватимуть менш деталізовані версії сіток, для яких згенеровано варіації LOD. Якщо встановлено значення 0.0, автоматичне LOD вимкнено. Збільште mesh_lod_threshold, щоб покращити продуктивність за рахунок деталізації геометрії, особливо при використанні UPDATE_ALWAYS update_mode.
Примітка: mesh_lod_threshold не впливає на діапазони видимості GeometryInstance3D (також відомі як "ручний" LOD або ієрархічний LOD).
Vector3 origin_offset = Vector3(0, 0, 0) 🔗
Встановлює зміщення початку координат, яке буде використовуватися, коли цей ReflectionProbe знаходиться в режимі box_projection. Його можна встановити на ненульове значення, щоб забезпечити відповідність відображення кімнаті прямокутної форми, одночасно зменшуючи кількість об'єктів, які "заважають" відображенню.
int reflection_mask = 1048575 🔗
Налаштовує маску відбиття, яка визначає, які об’єкти мають відбиття, що застосовуються з цього пробу. Кожен VisualInstance3D з шаром, що входить до цієї маски відображення, буде мати відбиття, що застосовуються з цього пробе. Дивись також cull_mask, який можна використовувати для виключення об'єктів з з'являються в рефлексії, поки що робить їх постраждалими від ReflectionProbe.
Vector3 size = Vector3(20, 20, 20) 🔗
Розмір відбиття зонда. Чим більший розмір, тим більший простір, покритий зоною, який знизить видиму роздільну здатність. Це найкраще тримати розмір тільки так само, як вам потрібно.
Note: Щоб краще підходять ділянки, які не вирівнюються до сітки, можна обертати вузол ReflectionProbe.
UpdateMode update_mode = 0 🔗
void set_update_mode(value: UpdateMode)
UpdateMode get_update_mode()
Як часто оновлюється ReflectionProbe. Може бути UPDATE_ONCE або UPDATE_ALWAYS.