GeometryInstance3D
Успадковує: VisualInstance3D < Node3D < Node < Object
Успадковано від: CPUParticles3D, CSGShape3D, GPUParticles3D, Label3D, MeshInstance3D, MultiMeshInstance3D, SpriteBase3D
Базовий вузол для візуальних екземплярів геометрії.
Опис
Базовий вузол для візуальних екземплярів геометрії. Відповідає деякі загальні функціональні можливості, такі як видимість та нестандартні матеріали.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методи
get_instance_shader_parameter(name: StringName) const |
|
void |
set_instance_shader_parameter(name: StringName, value: Variant) |
Переліки
enum ShadowCastingSetting: 🔗
ShadowCastingSetting SHADOW_CASTING_SETTING_OFF = 0
Не кинуться будь-які тіні. Використовуйте це для поліпшення продуктивності для малих геометрій, які навряд чи зливати помітні тіні (наприклад, сміття).
ShadowCastingSetting SHADOW_CASTING_SETTING_ON = 1
Увімкнені тіні з усіх видимих граней в GeometryInstance3D.
Враховуючи, що обличчя не будуть враховуватися, коли тіньне лиття.
ShadowCastingSetting SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2
Увімкнені тіні з усіх видимих граней в GeometryInstance3D.
Не враховуйте, щоб всі обличчя будуть враховані при тіні.
ShadowCastingSetting SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3
Покажуть лише тіні, які відкинули цей об'єкт.
Іншими словами, фактична сіточка не буде видно, тільки тіні, які відлиті з сітки будуть.
enum GIMode: 🔗
GIMode GI_MODE_DISABLED = 0
Вимкнено глобальний режим освітлення. Використовуйте для динамічних об'єктів, які не сприяють глобальному освітленню (наприклад, символи). При використанні VoxelGI і SDFGI геометрія буде receive непряме освітлення і відображення, але геометрія не буде розглядатися в GI випічці.
GIMode GI_MODE_STATIC = 1
Запечена глобальна система освітлення. Використовуйте для статичних об'єктів, які сприяють глобальному освітленню (наприклад, геометрія рівня). Цей режим GI ефективний при використанні VoxelGI, SDFGI і LightmapGI.
GIMode GI_MODE_DYNAMIC = 2
Динамічний глобальний режим освітлення. Використовуйте для динамічних об'єктів, які сприяють глобальному освітленню. Цей GI режим ефективний при використанні VoxelGI, але він має більш високу продуктивність, ніж GI_MODE_STATIC. При використанні інших методів GI, це буде діяти так само, як GI_MODE_DISABLED. При використанні LightmapGI об'єкт отримає непряме освітлення за допомогою Lightmap зон замість використання запечених текстур Lightmap.
enum LightmapScale: 🔗
LightmapScale LIGHTMAP_SCALE_1X = 0
Застаріло: Use gi_lightmap_texel_scale instead.
Стандартна щільність текселя для освітлення LightmapGI.
LightmapScale LIGHTMAP_SCALE_2X = 1
Застаріло: Use gi_lightmap_texel_scale instead.
Multiplies texel щільність на 2 × для освітлення LightmapGI. Для забезпечення консистенції в щільності текселя використовуйте це при обшивці сітки фактором від 1,5 до 3.0.
LightmapScale LIGHTMAP_SCALE_4X = 2
Застаріло: Use gi_lightmap_texel_scale instead.
Multiplies texel щільність від 4 × для освітлення LightmapGI. Для забезпечення консистенції в щільності текселя використовуйте це при обшивці сітки фактором між 3.0 і 6.0.
LightmapScale LIGHTMAP_SCALE_8X = 3
Застаріло: Use gi_lightmap_texel_scale instead.
Multiplies texel щільність від 8 × для освітлення LightmapGI. Для забезпечення консистенції в густині текселя використовуйте це при обшивці сітки за фактором більше 6,0.
LightmapScale LIGHTMAP_SCALE_MAX = 4
Застаріло: Use gi_lightmap_texel_scale instead.
Представляє розмір LightmapScale enum.
enum VisibilityRangeFadeMode: 🔗
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DISABLED = 0
Не попадати себе, ані її видимість залежностей, гістерез буде використовуватися замість. Це найшвидший підхід до керівництва LOD, але це може призвести до помітних переходів LOD в залежності від того, як авторуються сітки LOD. Див. visibility_range_begin і Node3D.visibility_parent для отримання додаткової інформації.
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_SELF = 1
При досягненні лімітів власної видимості. Це повільніше, ніж VISIBILITY_RANGE_FADE_DISABLED, але це може забезпечити плавні переходи. Діапазон загартування визначається visibility_range_begin_margin і visibility_range_end_margin.
Примітка: Тільки підтримується при використанні методу Forward+. При використанні методу мобільного або сумісного рендерингу, цей режим діє як VISIBILITY_RANGE_FADE_DISABLED, але з гістерезом вимкнено.
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DEPENDENCIES = 2
Відповідає свою видимість залежностей (див. Node3D.visibility_parent) при досягненні лімітів власної видимості. Це повільніше, ніж VISIBILITY_RANGE_FADE_DISABLED, але це може забезпечити плавні переходи. Діапазон загартування визначається visibility_range_begin_margin і visibility_range_end_margin.
Примітка: Тільки підтримується при використанні методу Forward+. При використанні методу мобільного або сумісного рендерингу, цей режим діє як VISIBILITY_RANGE_FADE_DISABLED, але з гістерезом вимкнено.
Описи властивостей
ShadowCastingSetting cast_shadow = 1 🔗
void set_cast_shadows_setting(value: ShadowCastingSetting)
ShadowCastingSetting get_cast_shadows_setting()
Вибраний прапорець відкидання тіні.
AABB custom_aabb = AABB(0, 0, 0, 0, 0, 0) 🔗
Надіславши межі цієї вершини за допомогою користувацького. Це може бути використана, щоб уникнути дорогих AABB рекалькуляції, що відбувається, коли скелет використовується з MeshInstance3D або мати точний контроль над MeshInstance3D з обмеженим ящиком. Для використання за замовчуванням AABB, встановленого значення до AABB з усіма полями, встановленими до 0.0. Щоб уникнути фрусу культування, встановити custom_aabb до дуже великого AABB, який охоплює весь світ гри, таких як AABB(-10000, -10000, -10000, 20000, 20000). Вимкніть всі форми культового (в тому числі оклюзійного культування), зателефонуйте RenderingServer.instance_set_ignore_culling() на GeometryInstance3D RID.
float extra_cull_margin = 0.0 🔗
Додаткова відстань, додана до GeometryInstance3D, що межує з коробкою (AABB) для збільшення її зчеплення.
LightmapScale gi_lightmap_scale = 0 🔗
void set_lightmap_scale(value: LightmapScale)
LightmapScale get_lightmap_scale()
Застаріло: Use gi_lightmap_texel_scale instead.
Щільність текселів, яка використовується для відображення світла в LightmapGI.
float gi_lightmap_texel_scale = 1.0 🔗
Щільність текселів, яка використовується для відображення світла в LightmapGI. Вищі значення масштабу забезпечують вищу роздільну здатність на карті освітлення, що може призвести до більш чітких тіней для джерел світла, які мають як пряме, так і непряме світло. Однак більші значення масштабу також збільшать простір, який займає сітка в текстурі карти освітлення, що збільшує вимоги до пам’яті, зберігання та часу випічки. Використовуючи одну сітку в різних масштабах, подумайте про коригування цього значення, щоб підтримувати однакову щільність текселів карти освітлення в усіх сітках.
Наприклад, подвоєння gi_lightmap_texel_scale подвоює роздільну здатність текстури карти освітлення для цього об’єкта на кожній осі, тому кількість текселів збільшиться в чотири рази.
Режим глобального освітлення для використання всієї геометрії. Щоб уникнути невідповідних результатів, використовуйте режим, який відповідає меті сітки під час геймплей (статичний/динамічний).
Примітка: Режим випікання світла також впливає на глобальне освітлення. Див. Light3D.light_bake_mode.
bool ignore_occlusion_culling = false 🔗
Якщо true, вимкнено оклюзійне скло для цього екземпляра. Корисно для гізмосу, які повинні бути передані навіть при оклюзії, які використовують.
Примітка: ignore_occlusion_culling не впливає на фрустке культування (що відбувається, коли об'єкт не виділяє кут камери). Щоб уникнути фрусу культового, встановити custom_aabb до дуже великого AABB, який охоплює весь світ гри, таких як AABB(-10000, -10000, -10000, 20000, 20000).
Зміни, як швидко переходи сітки до нижнього рівня деталей. Значення 0 змусить сіточку на найнижчий рівень деталь, значення 1 буде використовувати параметри за замовчуванням, а більші значення будуть тримати сіточку в більш високому рівні деталей на далеких відстанях.
Корисне тестування рівня докладних переходів в редакторі.
Матеріал накладка для всієї геометрії.
Якщо матеріал присвоюється цій властивості, він буде продаватися поверх будь-якого іншого активного матеріалу для всіх поверхонь.
Матеріал перенаречений на всю геометрію.
Якщо матеріал присвоюється цьому об'єкту, він буде використовуватися замість будь-якого матеріалу, встановленого в будь-якому матеріалі.
Прозорість наноситься на всю геометрію (як мультиплікатор існуючої прозорості матеріалів). 0.0 повністю непрозора, а 1.0 повністю прозора. Цінності більше, ніж 0.0 (виключно) змусять матеріал геометрії, щоб пройти через прозорий трубопровод, який повільніше рендериться і може експонувати питання, що стосуються неправильної прозорості. Однак, на відміну від використання прозорого матеріалу, налаштування пам'ятна прозорість до значення більше, ніж 0.0 (exclusive) буде не вимкнено Shadow рендеринг.
У просторих шейдерах 1.0 - прозорість `` встановлюється як значення за замовчуванням ``ALPHA вбудований.
Примітка: пам'ятна прозорість затискається між 0.0 і 1.0, тому ця властивість не може бути використана, щоб зробити прозорі матеріали більш опачними, ніж вони спочатку.
Примітка: Тільки підтримується при використанні методу рендерингу Forward+. При використанні методу мобільного або сумісного рендерингу transparency ігнорується і вважається завжди 0.0.
float visibility_range_begin = 0.0 🔗
Початкова відстань, з якої буде видно GeometryInstance3D, також враховуючи visibility_range_begin_margin. Значення за замовчуванням 0 використовується для вимкнення перевірки діапазону.
float visibility_range_begin_margin = 0.0 🔗
Маргін для visibility_range_begin поріг. ГеометріяInstance3 D буде змінювати свій стан видимості, коли він переходить або під visibility_range_begin поріг цієї суми.
Якщо visibility_range_fade_mode є VISIBILITY_RANGE_FADE_DISABLED, це діє як дистанція гістерезу. Якщо visibility_range_fade_mode є VISIBILITY_RANGE_FADE_SELF або VISIBILITY_RANGE_FADE_DEPENDENCIES, це діє як відстань fade переходу і повинна бути встановлена до значення більше, ніж 0.0 для ефекту бути помітним.
float visibility_range_end = 0.0 🔗
Відстань, з якої буде приховано GeometryInstance3D, також враховуючи visibility_range_end_margin. Значення за замовчуванням 0 використовується для вимкнення перевірки діапазону.
float visibility_range_end_margin = 0.0 🔗
Маргін для visibility_range_end поріг. ГеометріяInstance3 D буде змінювати стан видимості, коли він переходить або під поріг visibility_range_end.
Якщо visibility_range_fade_mode є VISIBILITY_RANGE_FADE_DISABLED, це діє як дистанція гістерезу. Якщо visibility_range_fade_mode є VISIBILITY_RANGE_FADE_SELF або VISIBILITY_RANGE_FADE_DEPENDENCIES, це діє як відстань fade переходу і повинна бути встановлена до значення більше, ніж 0.0 для ефекту бути помітним.
VisibilityRangeFadeMode visibility_range_fade_mode = 0 🔗
void set_visibility_range_fade_mode(value: VisibilityRangeFadeMode)
VisibilityRangeFadeMode get_visibility_range_fade_mode()
Контролює, які екземпляри будуть зникати при наближенні до меж діапазону видимості.
Описи методів
Variant get_instance_shader_parameter(name: StringName) const 🔗
Отримайте значення параметра шейдера, встановленого на цьому екземплярі.
void set_instance_shader_parameter(name: StringName, value: Variant) 🔗
Встановіть значення шейдерної уніформи лише для цього екземпляра (per-instance uniform). Дивіться також ShaderMaterial.set_shader_parameter(), щоб призначити однорідність для всіх екземплярів, використовуючи той самий ShaderMaterial.
Примітка. Щоб уніформу шейдера можна було призначати окремо для кожного екземпляра, її має визначати instance uniform ..., а не uniform ... у коді шейдера.
Примітка: name чутлива до регістру та має точно відповідати назві уніформи в коді (а не назві, написаній великими літерами в інспекторі).
Примітка: Уніформи шейдерів для кожного екземпляра доступні лише для шейдерів Spatial і CanvasItem, але не для шейдерів Fog, Sky або Particles.