Wonderland Engine 1.4.0 - Volumi di Sonde GI, Reverse-Z, Proprietà Array
Volumi di sonde di illuminazione globale sparsa, Reverse-Z, nuovi tipi di parametri per componenti personalizzati (array e record). Consulta il changelog completo qui sotto.
Volumi di Sonde di Illuminazione Globale Sparsa
Il punto culminante di questa release è la nostra implementazione avanzata di volumi di sonde. Il nostro metodo posiziona sonde di luce diffusa armonica sferica nella scena voxelizzando la scena e distribuendo le sonde di luce vicino alle superfici. Il risultato è leggero sia per la GPU che per i tempi di download, poiché posizioniamo le sonde solo dove necessario, utilizzando i dati in modo efficiente.
Le sonde sono calcolate direttamente dall’editor. L’illuminazione indiretta è applicata anche agli oggetti dinamici e rigenerati.
La scena sopra ha ~52.000 sonde, che corrispondono a circa 2,5MB di dati di GI scaricati.
Reverse Z
Grazie a Playko per aver sponsorizzato questa funzione.

Poiché i numeri in virgola mobile a 32 bit hanno una precisione maggiore vicino allo zero, la gamma di precisione usuale per le coordinate NDC (il risultato della proiezione) da -1 a 1 è subottimale e può produrre forti artefatti di z-fighting a distanze ravvicinate e lontane. Impostazioni di distanza del piano di ritaglio estremamente vicine o lontane amplificano questo effetto.
Reverse-Z configura lo spazio NDC e le matrici di proiezione in modo che la distribuzione di precisione in virgola mobile a 32 bit sia utilizzata in modo ottimale, permettendo il rendering di oggetti molto vicini e estremamente lontani senza i soliti artefatti di z-fighting.
Dai un’occhiata all’esempio di reverse-z qui.
Sempre SIMD
Grazie alla diffusione dell’adozione di WebAssembly SIMD, siamo riusciti a rimuovere tutte le varianti non-SIMD del runtime. Ciò significa che il suffisso -simd
non è più utilizzato ed è sottinteso per i nomi dei runtime.
Supporto per Progetti precedenti alla Versione 1.0.0
È difficile credere che Wonderland Engine 1.0.0 sia stata rilasciata quasi esattamente due anni fa.
Con la versione 1.4.0, stiamo rimuovendo 38 migrazioni di file di progetto individuali che aggiornano i file di progetto scritti con versioni precedenti alla 1.0.0. Che ne avessimo così tanti è una chiara testimonianza di quanto siamo seri riguardo alla compatibilità retroattiva.
Se hai un file di progetto precedente alla versione 1.0.0 e vuoi continuare a lavorarci con la 1.4.0, puoi sempre aprirlo con la versione 1.3.4 o una versione precedente di Wonderland Engine per prima migrarlo a una versione posteriore alla 1.0.0.
Changelog
Editor
- Nuova sezione Illuminazione Globale nelle Impostazioni Progetto per creare e configurare i volumi di sonde.
- Corretto l’importazione di file di scene rimossi che istanziano contenuti di file vecchi.
- Esposti la qualità di compressione delle immagini e ottimizzazione rata distorsione (RDO) nelle Risorse > Immagini.
- Linux: Abilita la segnalazione degli arresti anomali.
- Schermata di accesso migliorata nell’editor per effettuare l’accesso dal browser (per accesso al gestore di password).
- Correzione di vari crash.
Motore Grafico
- Utilizza reverse-Z ogni volta che
EXT_clip_control
è disponibile. - Nuova illuminazione globale calcolata tramite volumi di sonde GI sparsa.
- Correggi la costante EPSILON_F non valida per float mediump causando problemi sui dispositivi Android di fascia bassa.
- Aggiornamento a meshoptimizer 0.23 (possibili miglioramenti delle dimensioni del file ~5-10% per le mesh).
- Correzione del riavvio a caldo dei plugin che potenzialmente causavano voci extra di plugin nella Visualizzazione Plugin.
- Valutazione ottimizzata del buffer di feedback delle piastrelle su dispositivi di fascia bassa.
- Correzione degli artefatti sulle ombre delle luci puntiformi.
Runtime
- Rimuovere le varianti non-SIMD del runtime WebAssembly.
- Ottimizzazioni per il caricamento delle texture non compresse utilizzando ImageBitmap.
- Consenti il caricamento nella texture da ImageBitmap.
API Runtime
- Aggiungi
Property.array()
eProperty.record()
.
Immagine Docker
- Cambiata immagine di base da Ubuntu 20.04 a 22.04.
API Plugin
- Ora richiediamo che la chiave
"wonderlandengine"
sia presente inpackage.json
di un plugin. - Aggiunto sperimentale
tools.computeMeshBounds(mesh)
. - Aggiungi
ui.inputTextMultiline()
.