Valorizziamo la tua privacy. Usiamo i cookie per migliorare la tua esperienza sul nostro sito. Utilizzando questo sito accetti la nostra Informativa sulla privacy.

Rilascio 1.0.0

Rilascio 1.0.0

Trova il changelog completo qui di seguito.

Wonderland Engine 1.0.0 è dedicato a costruire una solida base per le versioni future:

Integrando NodeJS e esbuild per il bundling, siamo in grado di rendere tutti i progetti basati su NodeJS, mantenendo la comodità del precedente bundler interno. Inoltre, abbiamo reso la condivisione dei componenti come pacchetti npm più facile che mai.

Abbiamo riscritto l’API JavaScript in TypeScript. Anche se continui a utilizzare JavaScript per i tuoi progetti, noterai come il tuo IDE possa fare suggerimenti più intelligenti grazie a questo. Ma non vorrai perderti le nuove caratteristiche interessanti come:

1@property.string('Ciao TypeScript!')
2message!: string;

Con la riscrittura, abbiamo creato una suite di test completa e risolto un gran numero di bug. Leggi tutto sulla nuova API nel nostro post sul blog “Wonderland Engine 1.0.0 Migrazione JavaScript”.

Per quanto riguarda il rendering, abbiamo apportato alcune modifiche importanti, come l’adattamento del modello di illuminazione dei nostri shader predefiniti per utilizzare un’impostazione intensity più intuitiva al posto di attenuation. Queste modifiche stanno spianando la strada a meravigliose funzionalità di rendering per il futuro.

Wonderland Editor è il cuore del flusso di lavoro di sviluppo di Wonderland Engine. Abbiamo aggiunto una nuova funzionalità sperimentale per lanciare il tuo progetto direttamente su dispositivi Android, ad esempio nei browser VR standalone, configurando il port-forwarding per te.

Infine, il web aperto consente di raggiungere un vasto pubblico. Non solo la compatibilità con i dispositivi, ma anche la lingua può essere una barriera. Abbiamo aggiunto strumenti per aiutarti a tradurre i tuoi progetti e raggiungere un pubblico ancora più ampio.

Trova il changelog completo qui di seguito.

Cambiamenti che Rompono la Compatibilità 

Poiché teniamo molto alla retrocompatibilità, raramente abbiamo l’opportunità di rompere la compatibilità. Con il passaggio alla versione principale, abbiamo un’opportunità rara per sistemare e correggere le cose.

Quindi siamo stati scrupolosi, ma abbiamo portato con noi la comunità! Le tue librerie preferite sono già aggiornate e pronte per la nuova versione.

Ecco alcuni esempi di modifiche che abbiamo fatto e come abbiamo deciso di attuarle. Siamo entusiasti di sapere cosa ne pensi del risultato.

Esempio: .getTranslationWorld() e .getTransformationWorld() sono pericolosamente simili. Anche con l’auto-completamento nel tuo IDE, potresti non renderti conto di utilizzare la funzione sbagliata. Invece, ora utilizziamo “Position” al posto di “Translation” per descrivere la posizione di un oggetto.

Esempio: l’API precedente memorizzava tutto in un oggetto globale WL. Ciò rendeva difficile incorporare Wonderland Engine in altre librerie o eseguire più istanze sulla stessa pagina. Ora che le istanze di Wonderland Engine sono racchiuse in una classe WonderlandEngine, hai il pieno controllo su come e quando instanziarla.

Changelog 

Editor

  • Aggiunta la visualizzazione di Benchmarking
  • Aggiunta la visualizzazione di Localizzazione per aiutare nella traduzione delle esperienze WebXR
  • Aggiunto il macro JavaScript WL_EDITOR, impostato su true quando l’editor effettua il bundling dei componenti
  • Aggiunto lo slider per il valore alfa ai selettori di colore
  • Aggiunta la scelta per ETC1S (più piccolo, predefinito) e UASTC (qualità superiore) per la compressione delle immagini
  • Aggiunti valori predefiniti per le proprietà colorStop dei materiali del cielo
  • Aggiunto il menu a tendina dei dispositivi per avviare la pagina direttamente sui dispositivi Android collegati anziché sul dispositivo locale (configurazione del port forwarding automatica)
  • Packaging: Rimosse le SVG dei bottoni VR e AR non utilizzate
  • Windows: Risolti messaggi di errore casuali prodotti dal file watch
  • Il componente di Animazione con animazioni vuote ora è inattivo a runtime
  • Rilevamento automatico dei componenti dagli script e pacchetti npm
  • Corretto un raro bug in cui un componente aggiunto nell’editor poteva restituire undefined quando recuperato a runtime
  • Risolto l’oscuramento casuale dell’intera interfaccia utente durante varie modifiche al progetto
  • Comportamento corretto del Gizmo di rotazione su oggetti con antenati scalati in modo non uniforme
  • Risolti arresti anomali durante il cambio di progetti
  • Risolte retarget degli alcuni file FBX
  • Risolti arresti anomali ed errori di importazione con alcuni file FBX
  • Quando si ritargetizza, le tracce per cui non è stato trovato un nuovo obiettivo sono ora eliminate
  • Tutti i valori alfa delle proprietà colore ora predefiniti a 1.0
  • I valori di spaziatura negativi del componente testuale possono ora essere impostati
  • Rimosso il legacy JavaScript bundler a favore del bundler predefinito “esbuild”
  • Rimosso l’impostazione “8thwallToken” a favore di specificare nello script entrypoint
  • I materiali testuali ora hanno le miniature
  • I font ora hanno le miniature
  • CLI
    • Corretto il comando –import che non istanziava la scena
    • Sono stati aggiunti i token come metodo più sicuro di trasmissione delle credenziali all’editor per l’imballaggio su CI
    • Aggiunta struttura di benchmarking
  • Linux
    • Corretto il file watching
    • Corrette le stati dei tasti modificatori
  • Visualizzazioni
    • Asset Browser: I file eliminati ora vengono spostati nella cartella del cestino di sistema invece di essere eliminati definitivamente
    • Asset Browser: Le directory di lavoro per le applicazioni predefinite avviate con doppio clic ora sono nella radice del progetto
    • Console: Gli stati della casella di controllo Error, Warning, Info ora vengono conservati per progetto
    • Console: Corretta la barra di scorrimento orizzontale
    • Impostazioni del Progetto: Risolto il grande lag quando si modificava la porta del server dell’editor
    • Proprietà: Corretto l’incollaggio delle rotazioni di Eulero
    • Risorse: Aggiunto lo scorrimento orizzontale per garantire che l’intero contenuto delle tabelle possa essere letto anche su schermi più piccoli
    • Profiler: Migliorato quali sezioni del profilo sono abilitate per impostazione predefinita
  • Importazione della Scena
    • Ottimizzato il processamento delle mesh
    • Aggiunta l’importazione per più proprietà della luce

Engine

  • Rendering
    • Corretta la cucitura delle texture sullo shader Sky
    • Aggiornato all’ultima libreria Slug
  • Corretto bug di shadowing dovuto al conteggio interno delle ombre non aggiornato
  • Migliorate le query di profilazione GPU
  • La velocità di animazione negativa ora riproduce l’animazione al contrario
  • Gli shader ora sono compilati in modo asincrono per tempi di caricamento ancora più rapidi
  • Supporto per la compressione UASTC
  • Cambiato il motore di animazione per le prossime caratteristiche
  • Sistematicamente corrette varie rare crash dovuti all’accesso fuori dai limiti dell’array
  • La “attenuazione” della luce è stata rimossa a favore di un’impostazione “intensità” più intuitiva
  • Phong
    • Il termine ambientale ora viene recuperato moltiplicando il colore ambientale con il termine diffuso
    • Il colore diffuso ora è moltiplicato con la texture diffusa
    • Il colore del vertice ora è moltiplicato con la texture diffusa e il colore
    • Il modello di distanza della luce predefinito ora è uno standard inverso a caduta quadrata (il vecchio comportamento è deprecato ma ancora disponibile tramite una casella di controllo caratteristica)
    • Aggiunta una funzionalità di base TONE_MAPPING
  • Flat
    • Il colore del vertice ora è moltiplicato con colore e texture
  • Ottimizzati i tempi della CPU per lo Streaming delle Texture
  • Corretti vari rari crash dello Streaming delle Texture
  • Aggiunte più sezioni di profilo al Profiler

Runtime

  • PWA: Risolti vari file non memorizzati nella cache dal service worker per l’uso offline
  • Corretto un potenziale crash nel Profiler
  • Tipo di input “Head” corretto
  • I dati del file .bin completamente consumati ora vengono eliminati dopo il caricamento, migliorando l’uso della memoria
  • Ora è possibile utilizzare più istanze del motore su una singola pagina web
  • Ridotta la memoria massima disponibile per WebAssembly a 512 MB per una migliore esperienza di debug e compatibilità hardware iOS più vecchio
  • Il WebAssembly ora è correttamente modulare per consentire l’uso con qualsiasi altro modulo WebAssembly
  • La ridimensione ora viene gestita tramite ResizeObserver

JavaScript API

  • TypeScript
    • Aggiunto decoratore @property.<type> per definire proprietà configurabili direttamente nel corpo della classe
    • Interamente riscritta l’API in TypeScript
  • Aggiunti PhysXComponent.group, PhysXComponent.block e molte altre proprietà mancanti
  • Aggiunti XR.currentReferenceSpace, XR.currentReferenceSpaceType e XR.referenceSpaceForType
  • Aggiunti XR e WonderlandEngine.xr per l’accesso allo stato correlato a WebXR
  • Aggiunta una grande quantità di nuovi test automatici
  • Aggiunto un nuovo tipo di proprietà Color
  • Aggiunti metodi equals() per Mesh, Material, Texture, Animation e Skin
  • Aggiunto LightComponent.setColor
  • Aggiunti _wl_nextUpdate e _wl_nextFrame per consentire il test automatico dei componenti
  • Aggiunte le rimanenti proprietà di LightComponent
  • LightComponent.color ora restituisce solo 3 elementi per RGB
  • Aggiunti controlli di compatibilità per versione runtime e API
  • Aggiunto onRegister per consentire l’esecuzione di comportamenti aggiuntivi quando un componente è registrato
  • Tutto lo stato globale dell’API è stato rimosso
  • I componenti personalizzati ora sono classi: export class CustomComponent extends Component
  • Corretto AnimationComponent.state che restituiva valori enum errati
  • Corretto Object3D.lookAt() e chiarito il suo comportamento nella documentazione
  • Corretto clonaggio dei componenti con Object3D.addComponent(type, otherComponent)
  • Corretto Component.destroy() che distruggeva, ma non rimuoveva i componenti dagli oggetti
  • Corretto gli elementi RayHit.objects che non erano null per gli indici non utilizzati
  • Applicazione coerente dei parametri predefiniti come nell’editor
  • Rimosso callback onXRSupported, dato che WonderlandEngine.arSupported e WonderlandEngine.vrSupported sono ora disponibili dall’inizio dell’applicazione
  • Rinominate le funzioni Material.shader in Material.pipeline
  • Sostituiti array di callback (onSceneLoaded, onXRSessionStart, …) con una nuova classe Emitter
  • onXRSessionStart ora è un RetainEmitter, che attiva immediatamente i callback se una sessione XR è già in corso.
  • AnimationComponent.animation ora restituisce correttamente null quando non impostato
  • Component.onDestroy ora è chiamato quando viene caricata una nuova scena
  • Object è ora Object3D per evitare di ombreggiare il tipo integrato JavaScript
  • Scene.load() e Scene.append() ora sono async
  • Funzioni Translation rinominate in Position per evitare confusione con le funzioni Transform

Componenti

  • Convertiti tutti i componenti in classi
  • Convertiti alcuni componenti in TypeScript
  • Aggiunto componente trail
  • Aggiunto componente plane-detection
  • Aggiunto componente anchor
  • cursor-target: Deprecato add*Function a favore degli eventi onClick, onHover, onUnhover, onMove

Problemi Conosciuti

  • L’input tramite estensioni WebXR Emulator non funziona
  • Componenti personalizzati mancanti possono causare un loop di impacchettamento su Windows
Last Update: June 13, 2025

Resta aggiornato.