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...
LightmapGI
Успадковує: VisualInstance3D < Node3D < Node < Object
Склади та магазини запечені мапи для швидкого глобального освітлення.
Опис
Вузол LightmapGI використовується для обчислення та зберігання запечених карт світла. Карти освітлення використовуються для забезпечення високоякісного непрямого освітлення з дуже невеликим витоком світла. LightmapGI також може забезпечити приблизні відбиття за допомогою сферичних гармонік, якщо ввімкнено directional. Динамічні об’єкти можуть отримувати непряме освітлення завдяки світловим пробникам, які можна автоматично розміщувати, установивши для generate_probes_subdiv значення, відмінне від GENERATE_PROBES_DISABLED. Додаткові зонди карт освітлення також можна додати, створивши вузли LightmapProbe. Недоліком є те, що світлові карти є повністю статичними і не можуть бути запікані в експортованому проекті. Запікання вузла LightmapGI також повільніше порівняно з VoxelGI.
Процедурна генерація: функція запікання карти світла доступна лише в редакторі. Це означає, що LightmapGI не підходить для процедурно згенерованих або створених користувачами рівнів. Для процедурно згенерованих або створених користувачами рівнів замість цього використовуйте VoxelGI або SDFGI (див. Environment.sdfgi_enabled).
Продуктивність: ** **LightmapGI забезпечує найкращу продуктивність під час виконання для глобального освітлення. Він підходить для апаратного забезпечення низького рівня, включаючи інтегровану графіку та мобільні пристрої.
Примітка: Через те, як працюють карти освітлення, більшість властивостей мають видимий ефект лише після повторного запікання карт освітлення.
Примітка. Запікання карти освітлення на CSGShape3D і PrimitiveMesh не підтримується, оскільки вони не можуть зберігати дані UV2, необхідні для запікання.
Примітка. Якщо не встановлено користувальницькі інструменти відображення світла, LightmapGI можна створити лише з пристроїв, які підтримують засоби візуалізації Forward+ або Mobile.
Примітка: ** Вузол **LightmapGI записує легкі дані лише для дочірніх вузлів свого батька. Вузли вище в ієрархії сцени не будуть запікатися.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Sky |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Переліки
enum BakeQuality: 🔗
BakeQuality BAKE_QUALITY_LOW = 0
Низька якість випікання (найшвидший час випікання). Якість цього попереднього налаштування можна налаштувати, змінивши ProjectSettings.rendering/lightmapping/bake_quality/low_quality_ray_count і ProjectSettings.rendering/lightmapping/bake_quality/low_quality_probe_ray_count.
BakeQuality BAKE_QUALITY_MEDIUM = 1
Середня якість випікання (швидкий час випікання). Якість цього попереднього налаштування можна регулювати, змінюючи ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_ray_count і ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_probe_ray_count.
BakeQuality BAKE_QUALITY_HIGH = 2
Висока якість випікання (повільний час випікання). Якість цього попереднього налаштування можна регулювати, змінюючи ProjectSettings.rendering/lightmapping/bake_quality/high_quality_ray_count і ProjectSettings.rendering/lightmapping/bake_quality/high_quality_probe_ray_count.
BakeQuality BAKE_QUALITY_ULTRA = 3
Найвища якість випікання (найповільніший час випікання). Якість цього попереднього налаштування можна налаштувати, змінивши ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_ray_count і ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count.
enum GenerateProbes: 🔗
GenerateProbes GENERATE_PROBES_DISABLED = 0
Не генеруйте світлові карти для освітлення динамічних об'єктів.
GenerateProbes GENERATE_PROBES_SUBDIV_4 = 1
Найнижчий рівень підрозділу (разу випікання, найменші розміри файлів).
GenerateProbes GENERATE_PROBES_SUBDIV_8 = 2
Низький рівень підрозділу (смачні випікання, невеликі розміри файлів).
GenerateProbes GENERATE_PROBES_SUBDIV_16 = 3
Високий рівень підрозділу (повільний час випікання, великі розміри файлів).
GenerateProbes GENERATE_PROBES_SUBDIV_32 = 4
Найвищий рівень підрозділу (найвільніший час випічки, найбільший розмір файлу).
enum BakeError: 🔗
BakeError BAKE_ERROR_OK = 0
Lightmap було успішним.
BakeError BAKE_ERROR_NO_SCENE_ROOT = 1
Lightmap випікання не вдалося, тому що кореневий вузол для редагування сцени не може бути підключений.
BakeError BAKE_ERROR_FOREIGN_DATA = 2
Lightmap випікання не вдалося як ресурс даних Lightmap вбудований в іноземний ресурс.
BakeError BAKE_ERROR_NO_LIGHTMAPPER = 3
Lightmap випічка не вдалося, як там немає світлакарта, доступна в цій колекції Godot.
BakeError BAKE_ERROR_NO_SAVE_PATH = 4
Lightmap випічка не була як LightmapGIData зберегти шлях не налаштовується в ресурсі.
BakeError BAKE_ERROR_NO_MESHES = 5
Lightmap випікання не вдалося, оскільки немає сітки, які GeometryInstance3D.gi_mode є GeometryInstance3D.GI_MODE_STATIC і з чинним УФ2 картуванням в поточній сцені. Вам може знадобитися вибрати 3D-сцени в Доку Імпорта і змінити свій глобальний режим освітлення відповідно.
BakeError BAKE_ERROR_MESHES_INVALID = 6
Lightmap не вдалося проаналізувати деякі сітки, позначені статичною для випічки.
BakeError BAKE_ERROR_CANT_CREATE_IMAGE = 7
Lightmap не вдалося зберегти або імпортувати Godot після його збереження.
BakeError BAKE_ERROR_USER_ABORTED = 8
Користувач припинив роботу випікання Lightmap (типово натиснувши кнопку Cancel у діалоговому вікні прогресу).
BakeError BAKE_ERROR_TEXTURE_SIZE_TOO_SMALL = 9
Lightmap випікання не вдалося, оскільки максимальний розмір текстури занадто малий, щоб підійти деякі сітки, позначені для випічки.
BakeError BAKE_ERROR_LIGHTMAP_TOO_SMALL = 10
Lightmap випічка не була настільки невеликою.
BakeError BAKE_ERROR_ATLAS_TOO_SMALL = 11
Lightmap випічка не в змозі вписати в атлас.
enum EnvironmentMode: 🔗
EnvironmentMode ENVIRONMENT_MODE_DISABLED = 0
Освітлення навколишнього середовища при випіканні світлин.
EnvironmentMode ENVIRONMENT_MODE_SCENE = 1
Використовуйте освітлення середовища сцени під час запікання карт світла.
Примітка: Якщо запікання карт освітлення в сцені без вузла WorldEnvironment, це діятиме як ENVIRONMENT_MODE_DISABLED. Попередній перегляд неба та сонця в редакторі не враховується LightmapGI під час запікання карт освітлення.
EnvironmentMode ENVIRONMENT_MODE_CUSTOM_SKY = 2
Використовуйте environment_custom_sky як джерело освітлення оточення під час запікання карт освітлення.
EnvironmentMode ENVIRONMENT_MODE_CUSTOM_COLOR = 3
Використовуйте environment_custom_color, помножене на environment_custom_energy, як постійне джерело освітлення оточення під час запікання карт освітлення.
Описи властивостей
Біас використовувати при обчисленні тіней. Зростання bias може зафіксувати тіньові прищі на отриманому запеченому світлі карти, але може ввести петер-панування (порід не з'єднуючись до своїх роликів). В режимі реального часу Light3D тіні не впливають на це Bias.
float bounce_indirect_energy = 1.0 🔗
Мультиплікатор енергії для кожної бунції. Найвищі значення зроблять непряме освітлення яскравіше. Значення 1.0 являє собою фізичну точну поведінку, але більш високі значення можуть бути використані для того, щоб зробити непряме освітлення пропагувати більш помітно при використанні низької кількості відмов. Це може бути використана для прискорення часу випікання шляхом зменшення кількості bounces, потім збільшення bounce_indirect_energy.
Примітка: bounce_indirect_energy тільки має ефект, якщо bounces встановлено значення більше або дорівнює 1.
Кількість світлових відмов, які враховуються під час випічки. Більшість значень, що призводить до більш яскравого, більш реалістичного освітлення, за вартістю більш тривалого часу випікання. Якщо встановити до 0, випікають тільки освітлення навколишнього середовища, пряме освітлення і подача освітлення.
CameraAttributes camera_attributes 🔗
void set_camera_attributes(value: CameraAttributes)
CameraAttributes get_camera_attributes()
CameraAttributes ресурс, який визначає рівні впливу на випікання. Автоекспозиції та неефективні властивості ігноруються. Параметри експозиції повинні бути використані для зменшення динамічного діапазону, що присутні при випіканні. Якщо експозиція занадто висока, то LightmapGI буде перехоплювати артефакти або може мати позаштачні артефакти.
Відстань в пікселях з яких зразків дезодоратора. Низькі значення зберігають більше деталей, але можуть дати розмиті результати, якщо якість Lightmap недостатньо. Тільки ефективний, якщо use_denoiser є true і ProjectSettings.rendering/lightmapping/denoising/denoiser встановлюється на JNLM.
float denoiser_strength = 0.1 🔗
Міцність дезойнізуючого кроку наноситься на створену мапу. Тільки ефективний, якщо use_denoiser є true і ProjectSettings.rendering/lightmapping/denoiser встановлюється на JNLM.
Якщо true, випікає світлини, щоб містити в якості сферичної гармоніки. Це призводить до більш реалістичного зовнішнього вигляду освітлення, особливо з нормальними друкованими матеріалами і для вогнів, які мають їх прямий світло, випечений (Light3D.light_bake_mode, встановлених до Light3D.BAKE_STATIC і з Light3D.editor_only встановлюється на false. Напрямна інформація також використовується для забезпечення грубих відбиття для статичних та динамічних об'єктів. Це має невелику вартість виконання робочого часу, оскільки шейдер повинен виконувати більше роботи для інтерпретації інформації про напрямок від Lightmap. Прямі мапи також візьмуть довше, щоб випікати і призвести до більшого розміру файлів.
Примітка: Назва майна не має відносин з DirectionalLight3D. directional працює з усіма видами світла.
Color environment_custom_color = Color(1, 1, 1, 1) 🔗
Колір, який використовуватиметься для освітлення середовища. Ефективний лише тоді, коли environment_mode має значення ENVIRONMENT_MODE_CUSTOM_COLOR.
float environment_custom_energy = 1.0 🔗
Множник кольору, який використовується для освітлення середовища. Ефективний лише тоді, коли environment_mode має значення ENVIRONMENT_MODE_CUSTOM_COLOR.
Sky environment_custom_sky 🔗
void set_environment_custom_sky(value: Sky)
Sky get_environment_custom_sky()
Небо, яке буде використовуватися як джерело освітлення навколишнього середовища. Ефективно лише тоді, коли environment_mode має значення ENVIRONMENT_MODE_CUSTOM_SKY.
EnvironmentMode environment_mode = 1 🔗
void set_environment_mode(value: EnvironmentMode)
EnvironmentMode get_environment_mode()
Режим навколишнього середовища для використання при випіканні світлин.
GenerateProbes generate_probes_subdiv = 2 🔗
void set_generate_probes(value: GenerateProbes)
GenerateProbes get_generate_probes()
Рівень підрозділу, який автоматично генерує LightmapProbe для динамічного освітлення об'єкта. Більшість значень, що призводить до більш точного непрямого освітлення на динамічних об'єктах, за вартістю більш тривалого часу випікання і більшого розміру файлів.
Примітка: Автоматично генерується LightmapProbe не видно, як вузли в докці Сцени, і не можна змінити цей спосіб після їх створення.
Примітка: Незалежно від generate_probes_subdiv, прямий освітлення на динамічних об'єктах завжди застосовується за допомогою Light3D вузлів в режимі реального часу.
Якщо true, ігноруйте освітлення середовища при випіканні світлин.
LightmapGIData light_data 🔗
void set_light_data(value: LightmapGIData)
LightmapGIData get_light_data()
LightmapGIData пов'язаний з цим LightmapGI вершиною. Цей ресурс автоматично створений після випічки, і не призначений для створення вручну.
int max_texture_size = 16384 🔗
Максимальний розмір текстури для створеного текстурного атласу. Більші значення призведуть до меншої кількості згенерованих розрізів, але можуть не працювати на всюди через апаратні обмеження на розміри текстур. Залиште max_texture_size на значенні за замовчуванням 16384, якщо не впевнені.
BakeQuality quality = 1 🔗
void set_bake_quality(value: BakeQuality)
BakeQuality get_bake_quality()
Попереднє налаштування якості для використання під час запікання карт освітлення. Це впливає на час запікання, але розмір вихідного файлу залишається переважно однаковим на всіх рівнях якості.
Щоб ще більше пришвидшити час запікання, зменште bounces, вимкніть use_denoiser і/або зменште texel_scale.
Щоб ще більше підвищити якість, увімкніть supersampling і/або збільште texel_scale.
ShadowmaskMode shadowmask_mode = 0 🔗
void set_shadowmask_mode(value: ShadowmaskMode)
ShadowmaskMode get_shadowmask_mode()
Експериментальний: Ця властивість може бути змінена або усунута у наступних версіях.
Політика маскування тіней, яка використовується для спрямованих тіней на статичних об’єктах, запечених за допомогою цього екземпляра LightmapGI.
Shadowmasking дозволяє вузлам DirectionalLight3D відкидати тіні навіть за межами діапазону, визначеного їх властивістю DirectionalLight3D.directional_shadow_max_distance. Це робиться шляхом запікання текстури, яка містить карту тіней для спрямованого світла, а потім використання цієї текстури відповідно до поточного режиму маски тіней.
Примітка. Текстура тіньової маски створюється, лише якщо shadowmask_mode не є LightmapGIData.SHADOWMASK_MODE_NONE. Щоб побачити різницю, потрібно знову запекти карти світла після переходу з LightmapGIData.SHADOWMASK_MODE_NONE на будь-який інший режим.
Якщо true, карти освітлення запікаються зі шкалою текселів, помноженою на supersampling_factor, і перед збереженням карти освітлення зменшується дискретизація (тому ефективна щільність текселів є ідентичною щільності супервибірки вимкнуто).
Надвибірка забезпечує покращену якість карти освітлення з меншим шумом, більш гладкими тінями та кращим затіненням дрібних елементів об’єктів. Однак це може призвести до значного збільшення часу запікання та використання пам’яті під час запікання світлових карт. Підкладка автоматично регулюється, щоб уникнути збільшення витоку світла.
float supersampling_factor = 2.0 🔗
Коефіцієнт, на який множиться щільність текселів для супердискретизації. Для отримання найкращих результатів використовуйте ціле число. Хоча дробові значення дозволені, вони можуть призвести до збільшення витоку світла та розмитості карти освітлення.
Вищі значення можуть призвести до кращої якості, але також збільшити час випікання та використання пам’яті під час випікання.
Для отримання додаткової інформації див. supersampling.
Масштабує щільність текселів на карті освітлення всіх сіток для поточного запікання. Це множник, який базується на наявному розмірі текселів карти освітлення, визначеному в кожній імпортованій 3D-сцені, а також множнику щільності для кожної сітки (який призначений для використання, коли та сама сітка використовується в різних масштабах). Менші значення призведуть до швидшого часу випікання.
Наприклад, подвоєння texel_scale подвоює роздільну здатність текстури світлової карти для всіх об’єктів на кожній осі, тому кількість текселів збільшується вчетверо.
Якщо true, скористайтеся алгоритмом денозування GPU на створеній мапу. Це усуває більшість шумів у створеному світлікарти за вартістю довший час випікання. Розміри файлів, як правило, не впливають на використання деноайзера, хоча стиснення без втрат може зробити краще роботу при компресації денозованого зображення.
bool use_texture_for_bounces = true 🔗
Якщо true, буде створено текстуру з інформацією про освітлення, щоб пришвидшити створення непрямого освітлення ціною певної точності. У геометрії можуть спостерігатися додаткові артефакти витоку світла під час використання карт освітлення з низькою роздільною здатністю або UVs, які значно розтягують карту освітлення по поверхнях. Залиште use_texture_for_bounces значенням за замовчуванням true, якщо не впевнені.
Примітка: use_texture_for_bounces має ефект, лише якщо bounces встановлено на значення, більше або дорівнює 1.