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...
GeometryInstance3D
Успадковує: VisualInstance3D < Node3D < Node < Object
Успадковано від: CPUParticles3D, CSGShape3D, GPUParticles3D, Label3D, MeshInstance3D, MultiMeshInstance3D, SpriteBase3D
Базовий вузол для візуальних екземплярів геометрії.
Опис
Базовий вузол для візуальних екземплярів геометрії. Відповідає деякі загальні функціональні можливості, такі як видимість та нестандартні матеріали.
Посібники
Властивості
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методи
Variant |
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) 🔗
Overrides the bounding box of this node with a custom one. This can be used to avoid the expensive AABB recalculation that happens when a skeleton is used with a MeshInstance3D or to have precise control over the MeshInstance3D's bounding box. To use the default AABB, set value to an AABB with all fields set to 0.0. To avoid frustum culling, set custom_aabb to a very large AABB that covers your entire game world such as AABB(-10000, -10000, -10000, 20000, 20000, 20000). To disable all forms of culling (including occlusion and layer culling), call RenderingServer.instance_set_ignore_culling() on the GeometryInstance3D's 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.