Rilascio 0.8.5
Supporto a JavaScript moderno, pipeline con rendering migliorato della vegetazione, template di progetto e tantissimi bugfix e ottimizzazioni delle prestazioni, migliorando notevolmente la stabilità.
Approfondimento
Questo rilascio aggiunge alcune nuove potenti funzionalità che meritano un’attenzione particolare:
Supporto a JavaScript Moderno
Sebbene questo ti permetta di creare i tuoi componenti personalizzati in ES6+, utilizzando const
, =>
e class
, questa funzione è molto più di questo.
Con essa arriva la possibilità di utilizzare l’intero ecosistema NPM, di raggruppare il codice JavaScript da solo o persino utilizzare altri linguaggi come TypeScript!
Poiché vogliamo che Wonderland Engine si integri bene con il tuo processo di bundling, abbiamo pubblicato due pacchetti: @wonderlandengine/api e @wonderlandengine/components.
Pipeline
Un controllo più preciso delle funzionalità della pipeline GPU come il blending ti consente di costruire una vasta gamma di effetti. Le pipeline permettono anche di disabilitare parti degli shader per ottimizzare le prestazioni usando solo ciò che è effettivamente utilizzato.
Con essa arriva una nuova potente pipeline “Foliage”, che offre una qualità superiore per i modelli di piante con mascheramento dell’alpha.
Template di Progetto
Wonderland Engine ti rende già super produttivo con il suo flusso di lavoro di sviluppo rapido. Tuttavia, non dover fare qualcosa per primo può essere ancora più veloce. Per ridurre la quantità di lavoro di base necessaria, ora forniamo template per avviare il tuo progetto.
E se hai bisogno di più, puoi crearne di tuoi e condividerli con la comunità.
Changelog
Editor
- Supporto per JavaScript ES2018 tramite V8
- L’Editor ora analizza il bundle risultante anziché i file js sorgente
- Aggiunta opzione per compilare il bundle JavaScript tramite script npm
- Open-Sourced i componenti integrati dell’editor
- Pubblicati i componenti dell’editor come pacchetto npm
- Aggiunti template di progetto per la creazione di progetti
- Aggiunto supporto per template di progetto personalizzati
- Aggiunto supporto alle pipeline
- Aggiunto supporto per alpha to coverage (“mascheramento alpha con MSAA”)
- Aggiunto supporto per configurazioni di blending arbitrarie
- Aggiunta opzione per disabilitare test di profondità e maschere di scrittura di profondità
- Aggiunto supporto per materiali su due lati
- Aggiunta pipeline “Foliage” per materiali su due lati con alpha to coverage
- Aggiunta generazione di sourcemap per i bundle JavaScript
- Aggiunto supporto sperimentale per mip mapping su texture atlas compresse
- Aggiunto Ctrl + Drag’n’Drop dalla Property View all’Outline della Scena per copiare componenti su altri oggetti
- Aggiunto il parametro
framebufferScalingFactor
nelle Impostazioni Progetto - Abilitato MSAA nella Scene View per corrispondere all’aspetto runtime
- Migliorati i tempi di caricamento delle scene
- Aggiunte cartelle nell’area file del Browser delle Risorse
- Risolti alcuni rari crash durante le modifiche mentre si confezionavano i pacchetti
- Risolto un crash quando si trascina nulla nel Browser delle Risorse
- Risolti i valori restituiti in caso di errori con il flag
--windowless
- Risolti i punti salienti delle righe tabella nella Vista Risorse
- Risorse non rinominabili risolte nella Vista Risorse
- Risorse non selezionabili risolte nei menu a tendina delle proprietà
- Risolto il gizmo di scalatura nella Scene View per oggetti con genitore
- Migliorato lo stile e il layout dell’interfaccia utente
- Migliorata la fluidità del gizmo di trasformazione per scene con molti oggetti
- Migliorato il supporto per l’importazione di file OBJ
- Rimossa l’uscita del log superflua per ridurre il disordine
Template
- Aggiunto template “Mobile AR” con test di collisione
- Aggiunto template “VR” con rilevamento delle mani, controller, locomozione con teletrasporto e interazione con cursore
Runtime
- API JavaScript modularizzata
- L’API è ora open-source (https://github.com/WonderlandEngine/api)
- L’API è pubblicata come pacchetto npm (https://www.npmjs.com/package/@wonderlandengine/api)
- Tutti gli spazi di riferimento WebXR richiesti e quello più avanzato selezionato per impostazione predefinita
- Risolto il problema di WasmMemroy non allocabile su Oculus Quest durante lo sviluppo di progetti più grandi
- Risolto un crash durante la disattivazione di una mesh animata
- Migliorati i pulsanti per entrare in VR/AR
- Aggiunto un gradiente di sfondo per un aspetto migliore fino alla prima pittura del runtime
- Risolti avvisi registrati come errori nella console del browser
- Risolto
start()
che veniva chiamato su componenti JavaScript disattivati nell’editor
Motore
- Risolta l’anti-aliasing quando è abilitato il bloom
- Migliorata la performance dei ray cast contro Box e AxisAlignedBox
- Migliorata la performance dell’aggiornamento del testo
- Performance del grafo della scena notevolmente migliorata per scene con molte alberature oggetto dinamiche (mesh animate)
API JS
- Risolte eccezioni sull’accesso a parametri
WL.Material.*
- Aggiunto setter per
WL.PhysXComponent.shape
,extents
e varie altre proprietà per modificare corpi rigidi PhysX - Aggiunto
WebXR.refSpace
per selezionare lo spazio di riferimento - Risolto
WL.Object.getComponents()
che a volte restituiva tipi di componenti errati - Aggiunto
WL.Object.active
per (de-)attivare tutti i componenti su un oggetto - Aggiunto
set WL.Object.transformWorld
eset WL.Object.transformLocal
- Stato
active
migliorato quando cambiato duranteonActivate()
- Comportamento della memoria heap e della garbage collection notevolmente migliorato
Componenti JavaScript
- cursore: Aggiunto
cursorRayScalingAxis
per scalare l’oggetto ray su un asse specifico - cursore: Risolto
onHover()
che ora riceve il parametro dell’oggetto hover - teletrasporto: Rivisitato per supportare l’input di orientamento e stick in sessioni VR
- teletrasporto: Risolto il centro dello spazio teletrasportato invece del giocatore
- vr-mode-active-switch: Risolto il comportamento quando disattivato e ora evita di disattivarsi
- rilevamento delle mani: Aggiunte opzioni per (de-)attivare il mesh di visualizzazione e gli oggetti controller a seconda che una posa sia disponibile
- Aggiunto componente
finger-cursor
per interagire concursor-target
tramite sovrapposizione collisione (es. con rilevamento delle mani sulla punta dell’indice)
Immagine Docker
- Immagine base cambiata in ubuntu:20.04
- Aggiunto tag
edge
per tester di release candidate