VoxelGI

Hereda: VisualInstance3D < Node3D < Node < Object

Sonda de iluminación global (GI) en tiempo real.

Descripción

Los VoxelGI se utilizan para proporcionar luz indirecta y reflejos en tiempo real de alta calidad a las escenas. Precálculan el efecto de los objetos que emiten luz y el efecto de la geometría estática para simular el comportamiento de la luz compleja en tiempo real. Los VoxelGI necesitan ser procesados antes de tener un efecto visible. Sin embargo, una vez procesados, los objetos dinámicos recibirán luz de ellos. Además, las luces pueden ser totalmente dinámicas u procesadas.

Nota: VoxelGI solo se admite en el método de renderizado Forward+, no en Mobile o Compatibility.

Generación procedural: VoxelGI se puede procesar en un proyecto exportado, lo que lo hace adecuado para niveles generados proceduralmente o construidos por el usuario, siempre y cuando toda la geometría se genere de antemano. Para los juegos en los que la geometría se genera en cualquier momento durante el juego, SDFGI es más adecuado (véase Environment.sdfgi_enabled).

Rendimiento: VoxelGI es relativamente exigente con la GPU y no es adecuado para hardware de gama baja, como los gráficos integrados (en su lugar, considera LightmapGI). Para mejorar el rendimiento, ajuste ProjectSettings.rendering/global_illumination/voxel_gi/quality y active ProjectSettings.rendering/global_illumination/gi/use_half_resolution en la Configuración del proyecto. Para proporcionar una alternativa para hardware de gama baja, considera la posibilidad de añadir una opción para desactivar VoxelGI en los menús de opciones de su proyecto. Un nodo VoxelGI puede ser desactivado ocultándolo.

Nota: Las mallas deben tener paredes suficientemente gruesas para evitar fugas de luz (evite las paredes de una sola cara). Para los niveles interiores, encierre la geometría de su nivel en una caja suficientemente grande y una los bucles para cerrar la malla. Para evitar aún más las fugas de luz, también puede colocar estratégicamente nodos temporales MeshInstance3D con su GeometryInstance3D.gi_mode establecido en GeometryInstance3D.GI_MODE_STATIC. Estos nodos temporales pueden ser ocultados después de procesar el nodo VoxelGI.

Tutoriales

Propiedades

CameraAttributes

camera_attributes

VoxelGIData

data

Vector3

size

Vector3(20, 20, 20)

Subdiv

subdiv

1

Métodos

void

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

void

debug_bake()


Enumeraciones

enum Subdiv: 🔗

Subdiv SUBDIV_64 = 0

Usar las 64 subdivisiones. Este es el ajuste de menor calidad, pero el más rápido. Úsalo si puedes, pero sobre todo úsalo en el hardware de gama baja.

Subdiv SUBDIV_128 = 1

Utiliza 128 subdivisiones. Este es el ajuste de calidad predeterminado.

Subdiv SUBDIV_256 = 2

Usar 256 subdivisiones.

Subdiv SUBDIV_512 = 3

Usa 512 subdivisiones. Esta es la configuración de mayor calidad, pero la más lenta. En hardware de gama baja, esto podría causar que la GPU se bloquee.

Subdiv SUBDIV_MAX = 4

Representa el tamaño del enum Subdiv.


Descripciones de Propiedades

CameraAttributes camera_attributes 🔗

El recurso CameraAttributes que especifica los niveles de exposición para procesar. Las propiedades de autoexposición y no exposición se ignorarán. La configuración de exposición debe usarse para reducir el rango dinámico presente al procesar. Si la exposición es demasiado alta, el VoxelGI tendrá artefactos de bandas o puede tener artefactos de sobreexposición.


VoxelGIData data 🔗

El recurso VoxelGIData que contiene los datos para este VoxelGI.


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

El tamaño del área cubierta por el VoxelGI. Si aumentas el tamaño sin aumentar las subdivisiones con subdiv, el tamaño de cada celda aumentará y resultará en una iluminación menos detallada.

Nota: El tamaño se limita a 1.0 unidad o más en cada eje.


Subdiv subdiv = 1 🔗

El número de veces que se subdivide la cuadrícula en la que opera el VoxelGI. Un número mayor resulta en un detalle más fino y, por lo tanto, en una mayor calidad visual, mientras que un número menor resulta en un mejor rendimiento.


Descripciones de Métodos

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

Procesa el efecto de todos los GeometryInstance3D marcados con GeometryInstance3D.GI_MODE_STATIC y los Light3D marcados con Light3D.BAKE_STATIC o Light3D.BAKE_DYNAMIC. Si create_visual_debug es true, después de procesar la luz, esto generará un MultiMesh que tiene un cubo que representa cada celda sólida con cada cubo coloreado al color albedo de la celda. Esto puede usarse para visualizar los datos del VoxelGI y depurar cualquier problema que pueda estar ocurriendo.

Nota: bake() funciona desde el editor y en proyectos exportados. Esto lo hace adecuado para niveles generados proceduralmente o construidos por el usuario. Procesar un nodo VoxelGI generalmente toma de 5 a 20 segundos en la mayoría de las escenas. Reducir subdiv puede acelerar el procesado.

Nota: Los GeometryInstance3D y Light3D deben estar completamente listos antes de llamar a bake(). Si los está creando proceduralmente y faltan algunas mallas o luces en su VoxelGI procesado, use call_deferred("bake") en lugar de llamar a bake() directamente.


void debug_bake() 🔗

Llama a bake() con create_visual_debug activado.