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...
ReflectionProbe
Eredita: VisualInstance3D < Node3D < Node < Object
Cattura l'ambiente circostante per creare riflessi rapidi e precisi da un punto fornito.
Descrizione
Cattura l'ambiente circostante come una cubemap e ne memorizza versioni con livelli crescenti di sfocatura per simulare diverse rugosità dei materiali.
ReflectionProbe serve per creare riflessi di alta qualità a basso costo sulle prestazioni (quando update_mode è impostato su UPDATE_ONCE). È possibile fondere fluidamente i ReflectionProbe tra loro e con il resto della scena. È possibile anche combinare i ReflectionProbe con VoxelGI, SDFGI (Environment.sdfgi_enabled) e riflessioni sullo spazio dello schermo (Environment.ssr_enabled) per ottenere riflessi più accurati in aree specifiche. I ReflectionProbe renderizzano tutti gli oggetti all'interno della loro cull_mask, quindi aggiornarli può essere piuttosto costoso. È consigliabile aggiornarli una sola volta con gli oggetti statici importanti e poi lasciarli così come sono.
Nota: A differenza di VoxelGI e SDFGI, le ReflectionProbe ricavano il loro ambiente solo da un nodo WorldEnvironment. Se si specifica una risorsa Environment all'interno di un nodo Camera3D, questa verrà ignorata da ReflectionProbe. Ciò può causare un'illuminazione errata all'interno di ReflectionProbe.
Nota: Quando si utilizza il metodo di rendering Mobile, è possibile visualizzare solo 8 sonde di riflessione su ciascuna risorsa mesh, mentre il metodo di rendering Compatibilità supporta solo fino a 2 sonde di riflessione su ciascuna mesh. Tentare di visualizzare più di 8 sonde su una singola risorsa mesh tramite il renderer Mobile provocherà uno sfarfallio tra sonde mentre la telecamera si muove, mentre il renderer Compatibilità non renderizzerà alcuna sonda in più se sono utilizzate più di 2 sonde.
Nota: Quando si utilizza il metodo di rendering Mobile, le sonde di riflessione influenzeranno correttamente solo le mesh il cui AABB di visibilità interseca l'AABB della sonda di riflessione. Se si usa uno shader per deformare la mesh in modo che esca dal suo AABB, è necessario aumentare il valore di GeometryInstance3D.extra_cull_margin sulla mesh. Altrimenti, la sonda di riflessione potrebbe non essere visibile sulla mesh.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Enumerazioni
enum UpdateMode: 🔗
UpdateMode UPDATE_ONCE = 0
Aggiorna la sonda una sola volta sul frame successivo (consigliato per la maggior parte degli oggetti). La mappa di radianza corrispondente sarà generata nei sei frame successivi. L'aggiornamento richiede perciò più tempo rispetto a UPDATE_ALWAYS, ma ha un costo di prestazioni inferiore e può risultare in riflessi di qualità superiore. ReflectionProbe è aggiornato quando cambia la sua trasformazione, ma non quando cambia la geometria vicina. Puoi forzare un aggiornamento del ReflectionProbe spostandolo leggermente in qualsiasi direzione.
UpdateMode UPDATE_ALWAYS = 1
Aggiorna la sonda a ogni frame. Ciò fornisce risultati migliori per oggetti dinamici in rapido movimento (come le auto). Tuttavia, ha un costo notevole in termini di prestazioni. A causa del costo, si consiglia di usare solo un ReflectionProbe con UPDATE_ALWAYS al massimo per scena. Per tutti gli altri casi d'uso, utilizza UPDATE_ONCE.
enum AmbientMode: 🔗
AmbientMode AMBIENT_DISABLED = 0
Non applicare alcuna illuminazione ambientale all'interno della casella del ReflectionProbe definita dalle sue size.
AmbientMode AMBIENT_ENVIRONMENT = 1
Applica l'illuminazione ambientale con sorgente automatica all'interno della casella del ReflectionProbe definita dalle sue size.
AmbientMode AMBIENT_COLOR = 2
Applica un'illuminazione ambientale personalizzata all'interno della casella del ReflectionProbe definita dalle sue size. Vedi ambient_color e ambient_color_energy.
Descrizioni delle proprietà
Color ambient_color = Color(0, 0, 0, 1) 🔗
Il colore ambientale personalizzato da usare all'interno della casella del ReflectionProbe definita dalle sue size. Efficace solo se ambient_mode è AMBIENT_COLOR.
float ambient_color_energy = 1.0 🔗
L'energia del colore ambientale personalizzata da usare all'interno della casella del ReflectionProbe definita dalle sue size. Efficace solo se ambient_mode è AMBIENT_COLOR.
AmbientMode ambient_mode = 1 🔗
void set_ambient_mode(value: AmbientMode)
AmbientMode get_ambient_mode()
Il colore ambientale da usare all'interno della casella del ReflectionProbe definita dalle sue size. Il colore ambientale si fonderà in modo uniforme con gli altri ReflectionProbe e con il resto della scena (al di fuori della casella di ReflectionProbe definita dalle sue size).
Definisce la distanza in metri entro la quale una sonda si fonde con la scena.
Se true, abilita la proiezione di casella. Ciò rende i riflessi più corretti nelle stanze rettangolari, spostando il centro del riflesso in base alla posizione della telecamera.
Nota: Per adattare meglio le stanze rettangolari non allineate alla griglia, puoi ruotare il nodo ReflectionProbe.
Imposta la maschera di cull che determina quali oggetti sono disegnati da questa sonda. Ogni VisualInstance3D con uno strato incluso in questa maschera di selezione sarà renderizzato dalla sonda. È meglio includere solo oggetti enormi che potrebbero occupare molto spazio nella riflessione per risparmiare sui costi di rendering.
Questo può anche essere utilizzato per impedire a un oggetto di riflettersi su se stesso (ad esempio, una ReflectionProbe centrata su un veicolo).
Se true, calcola le ombre nella sonda di riflessione. Ciò rallenta il rendering della sonda di riflessione; potresti volerlo disabilitare se usi UPDATE_ALWAYS update_mode.
Definisce l'intensità della riflessione. L'intensità modifica il magnitudo dell'effetto di riflessione.
Se true, i riflessi ignoreranno il contributo del cielo.
La distanza massima dal ReflectionProbe a cui può trovarsi un oggetto prima di essere scartato. Riduci questo valore per migliorare le prestazioni, specialmente quando si usa UPDATE_ALWAYS update_mode.
Nota: La distanza massima di riflessione è sempre almeno uguale alle estensioni della sonda. Ciò significa che ridurre max_distance non scarterà sempre gli oggetti dalle riflessioni, specialmente se la casella della sonda di riflessione definita dalla sua size è già grande.
float mesh_lod_threshold = 1.0 🔗
Il bias di LOD automatico da usare per le mesh renderizzate all'interno del ReflectionProbe (analogo a Viewport.mesh_lod_threshold). Valori più alti useranno versioni meno dettagliate delle mesh che hanno variazioni di LOD generate. Se impostato su 0.0, il LOD automatico è disabilitato. Aumentare mesh_lod_threshold per migliorare le prestazioni a scapito dei dettagli della geometria, specialmente quando si usa UPDATE_ALWAYS update_mode.
Nota: mesh_lod_threshold non influisce sugli intervalli di visibilità di GeometryInstance3D (noti anche come LOD "manuale" o LOD gerarchico).
Vector3 origin_offset = Vector3(0, 0, 0) 🔗
Imposta lo scostamento dell'origine da usare quando questo ReflectionProbe è in modalità box_projection. Può essere impostato su un valore diverso da zero per garantire che una riflessione si adatti a una stanza rettangolare, riducendo allo stesso tempo il numero di oggetti che "intralciano" la riflessione.
int reflection_mask = 1048575 🔗
Imposta la maschera di riflessione che determina quali oggetti hanno riflessi applicati da questa sonda. Ogni VisualInstance3D con uno strato incluso in questa maschera di riflessione avrà riflessi applicati da questa sonda. Vedi anche cull_mask, che può essere usato per impedire agli oggetti di apparire nella riflessione, pur rendendoli influenzati dal ReflectionProbe.
Vector3 size = Vector3(20, 20, 20) 🔗
Le dimensioni della sonda di riflessione. Maggiori sono le dimensioni, maggiore è lo spazio coperto dalla sonda, il che abbasserà la risoluzione percepita. È meglio mantenere le dimensioni solo quanto serve.
Nota: Per adattare meglio le aree che non sono allineate alla griglia, puoi ruotare il nodo ReflectionProbe.
UpdateMode update_mode = 0 🔗
void set_update_mode(value: UpdateMode)
UpdateMode get_update_mode()
Imposta la frequenza con cui il ReflectionProbe viene aggiornato. Può essere UPDATE_ONCE o UPDATE_ALWAYS.