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
Hérite de : VisualInstance3D < Node3D < Node < Object
Hérité par : CPUParticles3D, CSGShape3D, GPUParticles3D, Label3D, MeshInstance3D, MultiMeshInstance3D, SpriteBase3D
Nœud de base pour les instances visuelles basées sur la géométrie.
Description
Nœud de base pour les instances visuelles basées sur de la géométrie. Partage certaines fonctionnalités communes comme la visibilité et les matériaux personnalisés.
Tutoriels
Propriétés
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Méthodes
get_instance_shader_parameter(name: StringName) const |
|
void |
set_instance_shader_parameter(name: StringName, value: Variant) |
Énumérations
enum ShadowCastingSetting: 🔗
ShadowCastingSetting SHADOW_CASTING_SETTING_OFF = 0
Ne projettera aucune ombre. Utilisez ceci pour améliorer les performances des petites géométries qui ne vont probablement pas projeter des ombres notables (comme des débris).
ShadowCastingSetting SHADOW_CASTING_SETTING_ON = 1
Projettera des ombres de toutes les faces visibles dans la GeometryInstance3D.
Prendra en compte le culling, donc les faces non rendues ne seront pas prises en compte lors de la projection des ombres.
ShadowCastingSetting SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2
Projettera des ombres de toutes les faces visibles dans la GeometryInstance3D.
Ne prendra pas en compte le culling, donc toutes les faces seront prises en compte lors de la projection des ombres.
ShadowCastingSetting SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3
Affichera uniquement les ombres projetées à partir de cet objet.
En d’autres termes, le mesh réel ne sera pas visible, seules les ombres projetées à partir du mesh le seront.
enum GIMode: 🔗
GIMode GI_MODE_DISABLED = 0
Mode d'illumination globale désactivée. Utilisez le pour les objets dynamiques qui ne contribuent pas à l'illumination globale (comme des personnages). Lors de l'utilisation de VoxelGI et SDFGI, la géométrie recevra l'éclairage indirect et les réflexions, mais la géométrie ne sera pas considérée dans le calcul de l'illumination globale.
GIMode GI_MODE_STATIC = 1
Mode d'illumination globale pré-calculée. Utilisez le pour les objets statiques qui contribuent à l'illumination globale (comme la géométrie de niveau). Ce mode d'illumination globale est efficace lorsque vous utilisez VoxelGI, SDFGI et LightmapGI.
GIMode GI_MODE_DYNAMIC = 2
Mode d'illumination globale dynamique. Utilisez le pour les objets dynamiques qui contribuent à l'illumination globale. Ce mode d'illumination globale n'est effectif qu'en utilisant VoxelGI, mais il a un impact de performance plus élevé que GI_MODE_STATIC. Lors de l'utilisation d'autres méthodes d'illumination globale, cela agira de la même manière que GI_MODE_DISABLED. Lors de l'utilisation de LightmapGI, l'objet recevra un éclairage indirect à l'aide de sondes de lightmap au lieu d'utiliser la texture de lightmap pré-calculée.
enum LightmapScale: 🔗
LightmapScale LIGHTMAP_SCALE_1X = 0
Obsolète : Use gi_lightmap_texel_scale instead.
La densité de texel standard pour le lightmapping avec LightmapGI.
LightmapScale LIGHTMAP_SCALE_2X = 1
Obsolète : Use gi_lightmap_texel_scale instead.
Multiplie la densité de texel par 2× pour le lightmapping avec LightmapGI. Pour assurer une consistance en densité de texel, utilisez ceci lors de la mise à l'échelle d'un maillage par un facteur entre 1.5 et 3.0.
LightmapScale LIGHTMAP_SCALE_4X = 2
Obsolète : Use gi_lightmap_texel_scale instead.
Multiplie la densité de texel par 4× pour le lightmapping avec LightmapGI. Pour assurer une consistance en densité de texel, utilisez ceci lors de la mise à l'échelle d'un maillage par un facteur entre 3.0 et 6.0.
LightmapScale LIGHTMAP_SCALE_8X = 3
Obsolète : Use gi_lightmap_texel_scale instead.
Multiplie la densité de texel par 8× pour le lightmapping avec LightmapGI. Pour assurer une consistance en densité de texel, utilisez ceci lors de la mise à l'échelle d'un maillage par un facteur supérieur à 6.0.
LightmapScale LIGHTMAP_SCALE_MAX = 4
Obsolète : Use gi_lightmap_texel_scale instead.
Représente la taille de l'énumération LightmapScale.
enum VisibilityRangeFadeMode: 🔗
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DISABLED = 0
Ne va pas disparaître ni ses dépendances de visibilité, une hystérésis sera utilisée à la place. Il s'agit de l'approche la plus rapide de LOD manuel, mais elle peut entraîner des transitions de LOD remarquables en fonction de la façon dont les maillages LOD sont faites. Voir visibility_range_begin et Node3D.visibility_parent pour plus d'informations.
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_SELF = 1
Va disparaître en atteignant les limites de sa propre plage de visibilité. Ceci est plus lent que VISIBILITY_RANGE_FADE_DISABLED, mais peut fournir des transitions plus fluides. La plage de disparition est déterminée par visibility_range_begin_margin et visibility_range_end_margin.
Note : Seulement supporté lors de l'utilisation de la méthode de rendu Forward+. Lors de l'utilisation de la méthode de rendu Mobile ou Compatibilité, ce mode agit comme VISIBILITY_RANGE_FADE_DISABLED mais avec l'hystérésis désactivée.
VisibilityRangeFadeMode VISIBILITY_RANGE_FADE_DEPENDENCIES = 2
Va faire apparaître ses dépendances de visibilité (voir Node3D.visibility_parent) lorsqu'elle atteint les limites de sa propre plage de visibilité. Ceci est plus lent que VISIBILITY_RANGE_FADE_DISABLED, mais peut fournir des transitions plus fluides. La plage d'apparition est déterminée par visibility_range_begin_margin et visibility_range_end_margin.
Note : Seulement supporté lors de l'utilisation de la méthode de rendu Forward+. Lors de l'utilisation de la méthode de rendu Mobile ou Compatiblité, ce mode agit comme VISIBILITY_RANGE_FADE_DISABLED mais avec l'hystérésis désactivée.
Descriptions des propriétés
ShadowCastingSetting cast_shadow = 1 🔗
void set_cast_shadows_setting(value: ShadowCastingSetting)
ShadowCastingSetting get_cast_shadows_setting()
The mode used to cast shadows from this instance.
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 🔗
La distance supplémentaire ajoutée à la boîte de délimitation de la GeometryInstance3D (AABB) pour augmenter sa boîte de cull.
LightmapScale gi_lightmap_scale = 0 🔗
void set_lightmap_scale(value: LightmapScale)
LightmapScale get_lightmap_scale()
Obsolète : Use gi_lightmap_texel_scale instead.
La densité de texel à utiliser pour le lightmapping dans LightmapGI.
float gi_lightmap_texel_scale = 1.0 🔗
La densité de texel à utiliser pour le lightmapping dans LightmapGI. Les plus grandes valeurs d'échelle offrent une résolution plus élevée dans la lightmap, ce qui peut entraîner des ombres plus nettes pour les lumières qui ont à la fois de la lumière directe et indirecte pré-calculée. Cependant, des valeurs plus élevées augmenteront également l'espace pris par le maillage dans la texture de lightmap, ce qui augmente les exigences en mémoire, en stockage et en temps de calcul. Lors de l'utilisation d'un seul maillage à différentes échelles, envisagez d'ajuster cette valeur pour maintenir la densité de texel de la lightmap cohérente entre les maillages.
Par exemple, doubler gi_lightmap_texel_scale double la résolution de texture de la lightmap pour cet objet sur chaque axe, de sorte que cela quadruple le compte de texels.
Le mode d'illumination globale à utiliser pour la géométrie entière. Pour éviter des résultats incohérents, utilisez un mode qui correspond au but du maillage lors du gameplay (statique/dynamique).
Note : Le mode de pré-calcul des lumières affectera également le rendu de l'illumination globale. Voir Light3D.light_bake_mode.
bool ignore_occlusion_culling = false 🔗
Si true, désactive l'occlusion culling pour cette instance. Utile pour les manipulateurs qui doivent être rendus même lorsque l'occlusion culling est utilisée.
Note : ignore_occlusion_culling n'affecte pas le frustum culling (ce qui se passe quand un objet n'est pas visible compte tenu de l'angle de la caméra). Pour éviter le frustum culling, définissez custom_aabb à une très grande AABB qui couvre votre monde de jeu comme AABB(-10000, -10000, -10000, 20000, 20000, 20000).
Change la vitesse de transition du maillage vers un niveau de détail inférieur. Une valeur de 0 forcera le maillage à son plus bas niveau de détail, une valeur de 1 utilisera les paramètres par défaut, et des valeurs plus grandes garderont le maillage dans un niveau de détail plus élevé à des distances plus lointaines.
Utile pour tester les transitions de niveau de détail dans l'éditeur.
The material overlay for the whole geometry.
If a material is assigned to this property, it will be rendered on top of any other active material for all the surfaces.
La redéfinition du matériau pour toute la géométrie.
Si un matériau est affecté à cette propriété, il sera utilisé au lieu de tout matériel défini dans n'importe quel emplacement de matériau du maillage.
La transparence appliquée à toute la géométrie (comme un multiplicateur de la transparence existante des matériaux). 0.0 est entièrement opaque, tandis que 1.0 est entièrement transparent. Les valeurs supérieures à 0.0 (exclusif) forceront les matériaux de la géométrie à passer par le pipeline de transparence, qui est plus lente à rendre et peut présenter des problèmes de rendu en raison d'un tri de transparence incorrect. Cependant, contrairement à l'utilisation d'un matériau transparent, définir transparency à une valeur supérieure à 0.0 (exclusif) ne désactivera pas le rendu des ombres.
Dans les shaders spatiaux, 1.0 - transparency est défini comme la valeur par défaut de l'ALPHA intégré.
Note : transparency est borné entre 0.0 et 1.0, de sorte que cette propriété ne peut pas être utilisée pour rendre des matériaux transparents plus opaques qu'ils ne le sont originellement.
Note : Seulement pris en charge lors de l'utilisation de la méthode de rendu Forward+. Lors de l'utilisation de la méthode de rendu Mobile ou Compatibilité, transparency est ignorée et est considérée comme valant toujours 0.0.
float visibility_range_begin = 0.0 🔗
Distance de départ à laquelle la GeometryInstance3D sera visible, en prenant en compte visibility_range_begin_margin. La valeur par défaut de 0 est utilisée pour désactiver la vérification de la plage.
float visibility_range_begin_margin = 0.0 🔗
Marge pour le seuil de visibilité visibility_range_begin. La GeometryInstance3D ne changera son état de visibilité que lorsqu'elle passera au-dessus ou en-dessous du seuil visibility_range_begin de cette quantité.
Si visibility_range_fade_mode vaut VISIBILITY_RANGE_FADE_DISABLED, cela agit comme une distance d'hystérésis. Si visibility_range_fade_mode vaut VISIBILITY_RANGE_FADE_SELF ou VISIBILITY_RANGE_FADE_DEPENDENCIES, cela agit comme une distance de transition de disparition et doit être défini à une valeur supérieure à 0.0 pour que l'effet soit remarquable.
float visibility_range_end = 0.0 🔗
Distance à laquelle la GeometryInstance3D sera cachée, en prenant en compte visibility_range_end_margin. La valeur par défaut de 0 est utilisée pour désactiver la vérification de la plage.
float visibility_range_end_margin = 0.0 🔗
Marge pour le seuil de visibilité visibility_range_end. La GeometryInstance3D ne changera son état de visibilité que lorsqu'elle passera au-dessus ou en-dessous du seuil visibility_range_end de cette quantité.
Si visibility_range_fade_mode vaut VISIBILITY_RANGE_FADE_DISABLED, cela agit comme une distance d'hystérésis. Si visibility_range_fade_mode vaut VISIBILITY_RANGE_FADE_SELF ou VISIBILITY_RANGE_FADE_DEPENDENCIES, cela agit comme une distance de transition de disparition et doit être défini à une valeur supérieure à 0.0 pour que l'effet soit remarquable.
VisibilityRangeFadeMode visibility_range_fade_mode = 0 🔗
void set_visibility_range_fade_mode(value: VisibilityRangeFadeMode)
VisibilityRangeFadeMode get_visibility_range_fade_mode()
Contrôle quelles instances disparaîtront lors de l'approche des limites de la plage de visibilité.
Descriptions des méthodes
Variant get_instance_shader_parameter(name: StringName) const 🔗
Obtient la valeur d'un paramètre de shader défini sur cette instance.
void set_instance_shader_parameter(name: StringName, value: Variant) 🔗
Définir la valeur d'un uniform de shader pour cette instance uniquement (uniform par-instance). Voir aussi ShaderMaterial.set_shader_parameter() pour attribuer un uniform sur toutes les instances en utilisant le même ShaderMaterial.
Note : Pour qu'un uniform de shader soit assignable selon l'instance, il doit être défini avec instance uniform ... plutôt que uniform ... dans le code du shader.
Note : name est sensible à la casse et doit correspondre exactement au nom de l'uniform dans le code (pas le nom capitalisé dans l'inspecteur).
Note : Les uniforms de shader par instance ne sont disponibles que dans les shaders Spatial et CanvasItem, mais pas pour les shaders de brouillard, de ciel ou de particules.