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...
Light3D
Успадковує: VisualInstance3D < Node3D < Node < Object
Успадковано від: AreaLight3D, DirectionalLight3D, OmniLight3D, SpotLight3D
Забезпечує базовий клас для різних видів світлових вузлів.
Опис
Light3D - abstract базовий клас для світлових вузлів. Як він не може бути миттєвим, він не повинен використовуватися безпосередньо. Інші види світлових вузлів успадкуються від неї. Світло3 D містить загальні змінні та параметри, які використовуються для освітлення.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Texture2D |
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методи
get_correlated_color() const |
|
void |
Переліки
enum Param: 🔗
Param PARAM_ENERGY = 0
Постійний доступ до пам'ятне світло_енергетика.
Param PARAM_INDIRECT_ENERGY = 1
Константа для доступу light_indirect_energy.
Param PARAM_VOLUMETRIC_FOG_ENERGY = 2
Константа для доступу light_volumetric_fog_energy.
Param PARAM_SPECULAR = 3
Константа для доступу light_specular.
Param PARAM_RANGE = 4
Константа для доступу до OmniLight3D.omni_range або SpotLight3D.spot_range.
Param PARAM_SIZE = 5
Константа для доступу light_size.
Param PARAM_ATTENUATION = 6
Константа для доступу до OmniLight3D.omni_attenuation або SpotLight3D.spot_attenuation.
Param PARAM_SPOT_ANGLE = 7
Константа для доступу SpotLight3D.spot_angle.
Param PARAM_SPOT_ATTENUATION = 8
Константа для доступу SpotLight3D.spot_angle_attenuation.
Param PARAM_SHADOW_MAX_DISTANCE = 9
Константа для доступу DirectionalLight3D.directional_shadow_max_distance.
Param PARAM_SHADOW_SPLIT_1_OFFSET = 10
Константа для доступу DirectionalLight3D.directional_shadow_split_1.
Param PARAM_SHADOW_SPLIT_2_OFFSET = 11
Константа для доступу DirectionalLight3D.directional_shadow_split_2.
Param PARAM_SHADOW_SPLIT_3_OFFSET = 12
Константа для доступу DirectionalLight3D.directional_shadow_split_3.
Param PARAM_SHADOW_FADE_START = 13
Константа для доступу DirectionalLight3D.directional_shadow_fade_start.
Param PARAM_SHADOW_NORMAL_BIAS = 14
Константа для доступу shadow_normal_bias.
Param PARAM_SHADOW_BIAS = 15
Константа для доступу shadow_bias.
Param PARAM_SHADOW_PANCAKE_SIZE = 16
Константа для доступу DirectionalLight3D.directional_shadow_pancake_size.
Param PARAM_SHADOW_OPACITY = 17
Константа для доступу shadow_opacity.
Param PARAM_SHADOW_BLUR = 18
Константа для доступу shadow_blur.
Param PARAM_TRANSMITTANCE_BIAS = 19
Константа для доступу shadow_transmittance_bias.
Param PARAM_INTENSITY = 20
Константа для доступу до light_intensity_lumens та light_intensity_lux. Використовується лише тоді, коли ProjectSettings.rendering/lights_and_shadows/use_physical_light_units є true.
Param PARAM_MAX = 21
Представляємо розмір параметра Param.
enum BakeMode: 🔗
BakeMode BAKE_DISABLED = 0
Світло ігнорується під час випікання. Це найшвидший режим, але світло не враховуватиметься під час випікання глобального освітлення. Цей режим, як правило, слід використовувати для динамічного освітлення, яке швидко змінюється, оскільки вплив глобального освітлення менш помітний на цьому освітленні.
Примітка: Приховання світла не впливає на випікання LightmapGI. Приховання світла все одно вплине на випікання VoxelGI та SDFGI (див. Environment.sdfgi_enabled).
BakeMode BAKE_STATIC = 1
Світло враховується в статичній випічці (VoxelGI, LightmapGI, SDFGI (Environment.sdfgi_enabled). Світло може бути переміщеним або модифікованим, але його глобальне освітлення не буде оновлюватися в режимі реального часу. Це підходить для тонких змін (наприклад, флігерингових торшів), але в цілому не великих змін, таких як заспокійливе світло і вимкнення.
Примітка: Світло не запечена в LightmapGI якщо editor_only true.
BakeMode BAKE_DYNAMIC = 2
Світло враховуються в динамічну випічку (VoxelGI і SDFGI (Environment.sdfgi_enabled). Світло може бути переміщений в режимі реального часу або змінено з глобальним оновленням освітлення. Зовнішній вигляд світлового освітлення буде трохи відрізнятися порівняно з BAKE_STATIC. Це має більшу вартість продуктивності порівняно з BAKE_STATIC. При використанні SDFGI, швидкість оновлення динамічних вогнів впливає на ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights.
Описи властивостей
float distance_fade_begin = 40.0 🔗
Відстань від фотокамери, на якій світло починає згасати (в 3D-блоках).
Примітка: Тільки ефективний для OmniLight3D і SpotLight3D.
bool distance_fade_enabled = false 🔗
Якщо true, світло буде плавно згасати, коли далеко від активних Camera3D, починаючи з distance_fade_begin. Це означає форму рівня деталь (LOD). Світло буде згасати над distance_fade_begin + distance_fade_length, після чого він буде культивований і не відправлений на шейкер на всіх. Використовуйте це, щоб зменшити кількість активних вогнів на сцені і, таким чином, поліпшити продуктивність.
Примітка: Тільки ефективний для OmniLight3D і SpotLight3D.
float distance_fade_length = 10.0 🔗
Відстань над яким світло і його тіні відтіняє. Легка енергія і тіньова непрозорість поступово зменшується над цією дистанцією і повністю непомітна на кінці.
Примітка: Тільки ефективний для OmniLight3D і SpotLight3D.
float distance_fade_shadow = 50.0 🔗
Відстань від фотоапарата, при якому відключається тінь світла (в 3D одиниці). Встановити це значення нижче distance_fade_begin + distance_fade_length для подальшого поліпшення продуктивності, так як Shadow рендерингу часто дорожче, ніж світло рендерингу.
Примітка: Тільки ефективний для OmniLight3D і SpotLight3D, і тільки коли shadow_enabled true.
Якщо true, то світло з'являється тільки в редакторі і не буде видно в режимі runtime. Якщо true, світло ніколи не буде запечена в LightmapGI незалежно від його light_bake_mode.
float light_angular_distance = 0.0 🔗
Легкий кутовий розмір у градусах. Збільшити це зробить тіні м'якшими на більших відстанях (також називають відсотні м'які тіні, або ПКС). Тільки доступні для DirectionalLight3Ds. Для довідки, Сонце з Землі приблизно 0.5. Збільшення цього значення над 0.0 для вогнів з ввімкненими відтінками буде мати помітну вартість виконання через ПКС.
Примітка: light_angular_distance не впливає на Node3D.scale (вага легкого або його батьківського масштабу).
Примітка: ПКСС для спрямованих світильників підтримується тільки в методі Forward+, а не мобільний або сумісність.
BakeMode light_bake_mode = 2 🔗
Режим випікання світла. Це вплине на методи глобального освітлення, які впливають на рендеринг світла.
Примітка: Режим глобального освітлення сіток також впливатиме на рендеринг глобального освітлення. Див. GeometryInstance3D.gi_mode.
Color light_color = Color(1, 1, 1, 1) 🔗
Колір світла в нелінійному кодуванні sRGB. Надмірно яскравий колір можна використовувати для досягнення результату, еквівалентного збільшенню light_energy світла.
int light_cull_mask = 4294967295 🔗
Світло впливатиме на об'єкти у вибраних шарах.
Примітка: Маска відсіювання світла ігнорується VoxelGI, SDFGI, LightmapGI та об'ємним туманом. Вони завжди візуалізують світло, ігноруючи маску відсіювання. Див. також VisualInstance3D.layers.
Множник легкої міцності (це не фізична частина). Для OmniLight3D і SpotLight3D, зміни цього значення змінить лише інтенсивність світла, а не радіус світла.
float light_indirect_energy = 1.0 🔗
Вторинний множник, що використовується з непрямим світлом (відбиття світла). Використовується з VoxelGI та SDFGI (див. Environment.sdfgi_enabled).
Примітка: Ця властивість ігнорується, якщо light_energy дорівнює 0.0, оскільки світло взагалі не буде присутнє в GI-шейдері.
float light_intensity_lumens 🔗
Використовуються за допомогою лінійних світильників (OmniLight3D та SpotLight3D), коли ProjectSettings.rendering/lights_and_shadows/use_phys_light_units true. Встановлює інтенсивність джерела світла, вимірюваного в Луменсі. Люмени є виміром світлового потоку, який є загальною кількістю видимого світла, що випускається джерелом світла на одиницю часу.
Для SpotLight3D ми припустимо, що площа зовні видимого конуса оточена ідеальним світлом, що поглинає матеріал. Відповідно, видима яскравість площі конуса не змінюється, оскільки конус збільшується і знижується за розміром.
Типові побутові лампочки можуть діапазонуватися від близько 600 люменів до 1,200 люменів, свічки близько 13 люменів, при цьому вуличний ліхтар може бути приблизно 60,000 люменів.
Використовується DirectionalLight3D, коли ProjectSettings.rendering/lights_and_shadows/use_phys_light_units true. Встановлює інтенсивність джерела світла, вимірюється в Lux. Lux - це вимір об'ємного потоку на одиницю площі, що дорівнює одному мастилу на квадратний метр. Lux - це вимір того, скільки світла потрапляє на поверхню в обумовлений час.
У чистому сонячному день поверхня в прямій сонячному світлі може становити приблизно 100 000 люкс, типовий номер в будинку може бути приблизно 50 люкс, в той час як місячний грунт може становити приблизно 0,1 люкс.
Якщо true, ефект світла зворотний, затемнення зон і лиття яскравих тіней.
Texture2D light_projector 🔗
void set_projector(value: Texture2D)
Texture2D get_projector()
Texture2D, розроблене світлом. shadow_enabled повинен бути на проектора для роботи. Світлопроектори роблять світло, якби він блискучий через кольоровий, але прозорий об'єкт, практично як світло блискуче через вітраж.
Примітка: На відміну від BaseMaterial3D, режим фільтра якого можна регулювати на основі матеріалів, режим фільтра для текстур світлового проектора встановлюється глобально з ProjectSettings.rendering/textures/light_projectors/filter.
Примітка: Легка текстура проектора підтримується тільки в методах Forward+ і мобільних рендерингів, не сумісність.
The simulated size of the light in Godot units, affecting shading and shadows. For OmniLight3Ds and SpotLight3Ds, increasing this value simulates a spherical area light, expanding the size of specular highlights. If shadows are enabled, a penumbra is rendered, making shadows appear blurrier. For AreaLight3Ds, only the shadows are affected. Penumbras are simulated with percentage-closer soft shadows, or PCSS, which has a noticeable performance cost for values above 0.0.
Note: light_size is not affected by Node3D.scale (the light's scale or its parent's scale).
Note: PCSS for positional lights is only supported in the Forward+ and Mobile rendering methods, not Compatibility.
Інтенсивність дзеркального шару в об'єктах, уражених світлом. На 0 світло стає чистим дифузним світлом. При не випіканні емісії це може бути використаний для уникнення нереалістичних відбиття при розміщенні світильників над допустимою поверхнею.
Встановлює колірну температуру джерела світла, вимірюється в Кельвіні. Це використовується для розрахунку температури кореневого кольору, яка містить light_color.
Сонце на похмурий день становить приблизно 6500 Келвін, на прозорий день він становить від 5500 до 6000 Кельвін, а на прозорий день на схід сонця або захід сонця він коливається близько 1850 Кельвін.
float light_volumetric_fog_energy = 1.0 🔗
Вторинний багатоплівник, що переповнений light_energy, після чого використовується з об'ємною фольгою Environment (включений). Якщо встановити до 0.0, обчислювальний об'ємний фольг буде пропущений для цього світла, який може підвищити продуктивність для великих кількостей при включенні об'ємної фольги.
Примітка: Для запобігання короткочасних динамічних ефектів світла з погано взаємодіє з об'ємною фольгою, світильники, що використовуються в цих ефектах, повинні мати light_volumetric_fog_energy 0.0, якщо Environment.volumetric_fog_temporal_reprojection_enabled вимкнено (або якщо сума репроекту значно знижена).
Використовується для регулювання зовнішнього вигляду тіні. Занадто невелике значення призводить до самостійного загоєння («шадова акне»), при цьому занадто велика вартість викликає тіні для відокремлення від касетів («петеро-панування»). Регулювання як потрібно.
Розмиваємо краю тіні. Може використовуватися для приховувати піксельні артефакти в shadow map. Висока вартість може впливати на продуктивність, робити тіні з'являються зернові та можуть викликати інші небажані артефакти. Намагайтеся тримати якомога ближче за замовчуванням.
int shadow_caster_mask = 4294967295 🔗
Світло лише відкидає тіні, використовуючи об’єкти у вибраних шарах.
Якщо true, світло відкине в режимі реального часу тіні. Це має суттєву вартість виконання. Тільки ввімкніть Shadow рендеринг, коли він робить помітну різницю у зовнішній вигляд сцени, а також врахуйте використання distance_fade_enabled, щоб приховати світло, коли далеко від Camera3D.
float shadow_normal_bias = 2.0 🔗
Вимкніть зовнішній вигляд в shadow map від нормального об’єкта. Це може бути використана для зменшення самодозатора артефактів без використання shadow_bias. У своїй практиці це значення має бути викликане shadow_bias, щоб зменшити артефакти максимально можливо.
Непрозорість використовувати при рендерингу shadow map. Значення нижче 1.0 роблять світло через тіні. Це може бути використаний для підробки глобального освітлення при низькій вартості виконання.
bool shadow_reverse_cull_face = false 🔗
Якщо true, то зворотний зв'язок сітки. Це може бути корисним, коли у вас є плоска сітка, яка має світло позаду неї. Якщо потрібно відлити тінь з двох сторін сітки, встановити сітку для використання двосторонніх тіней з GeometryInstance3D.SHADOW_CASTING_DOUBLE_SIDED.
float shadow_transmittance_bias = 0.05 🔗
There is currently no description for this property. Please help us by contributing one!
Описи методів
Повернутися до Color ідеального чорного тіла на даній light_temperature. Це значення обчислюється внутрішньо на основі light_temperature. Цей Color передається light_color перед відправкою в RenderingServer.
float get_param(param: Param) const 🔗
Повертає значення вказаного параметра Param.
void set_param(param: Param, value: float) 🔗
Встановлює значення вказаного параметра Param.