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.

VoxelGI

Hérite de : VisualInstance3D < Node3D < Node < Object

Sonde d’éclairage global (GI) en temps réel.

Description

Les VoxelGIs sont utilisées pour fournir une lumière indirecte en temps réel et en haute qualité à des scènes. Elles pré-calculent les effets d'objets qui émettent de la lumière et l'effet de la géométrie statique pour simuler le comportement de lumières complexes en temps réel. Les VoxelGIs doivent être pré-calculées avant d'avoir un effet visible. Cependant, mais une fois calculées, les objets dynamiques recevront d'elles de la lumière. De plus, des lumières peuvent être entièrement dynamiques ou pré-calculées.

Note : VoxelGI n'est prise en charge que dans la méthode de rendu Forward+, pas Mobile ou Compatibilité.

Génération procédurale : VoxelGI peut être pré-calculée dans un projet exporté, ce qui la rend adaptée pour des niveaux générés de manière procédurale ou construits par l'utilisateur tant que la géométrie est générée à l'avance. Pour les jeux où la géométrie est générée à tout moment du gameplay, la SDFGI est plus adaptée (voir Environment.sdfgi_enabled).

Performance : VoxelGI est relativement exigeante sur le GPU et n'est pas adaptée au matériel d'entrée de gamme tel que les cartes graphiques intégrées (utilisez plutôt LightmapGI). Pour améliorer les performances, ajustez ProjectSettings.rendering/global_illumination/voxel_gi/quality et activez ProjectSettings.rendering/global_illumination/gi/use_half_resolution dans les Paramètres du projet. Pour fournir une solution de repli au matériel d'entrée de gamme, envisagez d'ajouter une option pour désactiver VoxelGI dans les menus d'options de votre projet. Un nœud VoxelGI peut être désactivé en le cachant..

Note : Les maillages doivent avoir des murs suffisamment épais pour éviter les fuites de lumière à travers (évitez les murs qui n'ont qu'un seul côté). Pour les niveaux intérieurs, enfermez votre géométrie du niveau dans une boîte suffisamment grande et bouchez les trous pour fermer le maillage. Pour éviter encore plus les fuites de lumière, vous pouvez également placer stratégiquement des nœuds MeshInstance3D temporaires avec leur GeometryInstance3D.gi_mode défini à GeometryInstance3D.GI_MODE_STATIC. Ces nœuds temporaires peuvent ensuite être cachés après avoir pré-calculé le nœud VoxelGI.

Tutoriels

Propriétés

CameraAttributes

camera_attributes

VoxelGIData

data

Vector3

size

Vector3(20, 20, 20)

Subdiv

subdiv

1

Méthodes

void

bake(from_node: Node = null, create_visual_debug: bool = false)

void

debug_bake()


Énumérations

enum Subdiv: 🔗

Subdiv SUBDIV_64 = 0

Utilise 64 subdivisions. C’est le réglage de qualité la plus basse, mais le plus rapide. Utilisez-le si vous le pouvez, mais surtout utilisez-le sur du matériel bas de gamme.

Subdiv SUBDIV_128 = 1

Utilise 128 subdivisions. Il s’agit du paramètre de qualité par défaut.

Subdiv SUBDIV_256 = 2

Utilise 256 subdivisions.

Subdiv SUBDIV_512 = 3

Utilise 64 subdivisions. C’est le réglage de qualité la plus haute, mais le plus lent. Le GPU peut même ramer sur les appareils peu puissants.

Subdiv SUBDIV_MAX = 4

Représente la taille de l'énumération Subdiv.


Descriptions des propriétés

CameraAttributes camera_attributes 🔗

La ressource CameraAttributes qui précise les niveaux d'exposition auxquels pré-calculer. Les propriétés d'auto-exposition et de non-exposition seront ignorées. Les paramètres d'exposition devraient être utilisés pour réduire la plage dynamique présente lors du pré-calcul. Si l'exposition est trop élevée, le VoxelGI aura des artéfacts de bande ou peut avoir des artéfacts de sur-exposition.


VoxelGIData data 🔗

La ressource VoxelGIData qui contient les données de ce VoxelGI.


Vector3 size = Vector3(20, 20, 20) 🔗

The size of the area covered by the VoxelGI. This must be 1.0 or greater on each axis.

Note: If you make the size larger without increasing the number of subdivisions with subdiv, the size of each cell will increase and result in less detailed lighting.


Subdiv subdiv = 1 🔗

Nombre de sous-divisions de la grille sur laquelle le VoxelGI opère. Un nombre plus élevé résulte en un détail plus fin et donc une qualité visuelle plus élevée, tandis que les nombres plus bas résultent en une meilleure performance.


Descriptions des méthodes

void bake(from_node: Node = null, create_visual_debug: bool = false) 🔗

Pré-calcul l'effet de toutes les GeometryInstance3Ds marquées avec GeometryInstance3D.GI_MODE_STATIC et les Light3Ds marquées avec Light3D.BAKE_STATIC ou Light3D.BAKE_DYNAMIC. Si create_visual_debug vaut true, après avoir pré-calculé la lumière, cela générera un MultiMesh qui a un cube représentant chaque cellule solide avec chaque cube coloré à la couleur d'albedo de la cellule. Ceci peut être utilisé pour visualiser les données de VoxelGI et déboguer toute problème qui pourrait se produire.

Note : bake() fonctionne depuis l'éditeur et dans des projets exportés. Cela le rend adapté aux niveaux générés procéduralement ou construits par l'utilisateur. Pré-calculer un noeud VoxelGI prend généralement de 5 à 20 secondes dans la plupart des scènes. Réduire subdiv peut accélérer le calcul.

Note : Les GeometryInstance3Ds et les Light3Ds doivent être entièrement prêtes avant que bake() soit appelée. Si vous créez de façon procédurale celles-ci et que certains maillages ou lumières sont manquants de votre VoxelGI pré-calculée, utilisez call_deferred("bake") au lieu d'appeler bake() directement.


void debug_bake() 🔗

Appelle bake() avec create_visual_debug activé.