Rilascia 1.2.0
Il nostro rilascio più potente di sempre introduce i primi post-processing come Bloom e Tonemapping, supporto HDR per ambienti, miglioramenti all’illuminazione basata sulle immagini, blending delle animazioni, obiettivi di morph, e un’API dell’editor basata su JavaScript/TypeScript per scrivere strumenti personalizzati.
Test migliorati
Abbiamo creato un framework di test che può confrontare i risultati del rendering di un progetto per testare automaticamente i nostri esempi.
Abbiamo reso open-source questo framework per permetterti di testare i tuoi progetti.
Cambiamenti invisibili
Questo rilascio è pieno di modifiche strutturali invisibili per garantire che l’architettura del motore e dell’editor si sviluppi con le funzionalità future:
- Abbiamo rifattorizzato il modello di dati interno per l’editor affinché sia più gestibile, veloce e riduca gli errori.
- Il sistema di animazione ora utilizza grafici di animazione. Sebbene non siano ancora visibili, abilitano già nuove funzionalità come il blending delle animazioni.
- Ora vengono gestite più scene a runtime. Questo è già utile quando vengono aggiunte e caricate scene da JavaScript, ma presto consentirà di gestire efficientemente le risorse attraverso più scene e pacchetti di risorse dall’editor.
- Il formato di serializzazione per componenti personalizzati è stato modificato per supportare molti più tipi di proprietà in futuro.
Changelog
Editor
- Aggiunta la vista “Strumenti di Animazione” per aggiungere tracce di eventi alle animazioni
- Aggiunta l’API Plugin dell’Editor basata su JavaScript/TypeScript per costruire viste e strumenti personalizzati
- Aggiunto supporto al blending a 1D e 2D per il componente di animazione
- Ristilizzazione dell’interfaccia, risolvendo molti problemi di UX e sfruttando meglio lo spazio delle finestre
Old:


- Risoluzione del loop infinito di packaging quando un oggetto con componente fisico statico è selezionato
- Aggiunta una barra di ricerca per cercare i progetti recenti nel wizard dei progetti
- Aggiunti errori di parsing JSON quando il file del progetto o altri file JSON non possono essere caricati
- Consentito la lettura di file JSON con virgole finali per una più facile risoluzione dei conflitti di merge
- Riconoscimento delle estensioni
.tsx
e.jsx
come script - Aggiunto supporto per caricare immagini HDR
- Visualizzazione della scena: ora puoi usare Shift con Num7, Num1 e Num3 per visualizzare da direzioni allineate all’asse opposte
- Visualizzazione della scena: Risolto l’asse del Gizmo non cliccabile se perpendicolare alla visualizzazione
- Visualizzazione della scena: emulazione del pulsante centrale del mouse con Alt + pulsante sinistro del mouse
- Visualizzazione della scena: risoluzione del rendering della modalità di visualizzazione della mesh
- Visualizzazione della scena: Aggiunto interruttore per la visualizzazione della luce
- Impostazioni del progetto: Mostra anche le coordinate della texture secondaria nelle impostazioni di rendering
- Aggiunto avviso su iOS Safari per l’impostazione massima non compressa degli atlas
- Migliorate significativamente le prestazioni complessive dell’editor
- Visualizzazione delle risorse: Aggiunto copia e incolla per le risorse dei materiali
- Aggiunta opzione per disabilitare l’importazione di materiali PBR come Phong
- Aggiunto checkbox per lanciare il progetto con HTTPS, se SSL è configurato
- Evitare il packaging di mesh non referenziate per impostazione predefinita
- Aggiunto supporto per file di scena con attributi separati di Tangente e Bitangente
- Risolta la conditione di gara tra
npm install
e l’aggiornamento del pacchetto API richiesto - Silenziati errori degli atlas di texture durante la compressione delle immagini
- Risolti i miniatura dei materiali non renderizzati al caricamento iniziale del progetto
- Aggiunti Alt+G, Alt+R e Alt+S per resettare posizione, rotazione e scala degli oggetti selezionati
- Spostato il collegamento “Simula Fisica” a Alt+Shift+S
- Passaggio a WEBP per immagini non compresse
- Aggiunta l’impostazione del progetto
importPhysicalAsPhong
per consentire di disabilitarlo - Risolto il parametro
--import
che non compila correttamente la scena importata - Aggiunto supporto per importare file EXR
Engine
Aggiunto supporto per il blending di animazioni 1D e 2D
Aggiunto supporto per le tracce degli eventi di animazione
Aggiunto supporto per ambienti HDR
Aggiunta cottura delle sonde GI speculari e diffuse dal cielo e ambiente HDR
Aggiunto supporto per le sonde GI diffuse armoniche sferiche
Aggiunto supporto per parametri di float a 16-bit (“half float”) nei materiali personalizzati, dichiarati con
mediump
Aggiunto supporto per obiettivi di morph (chiamati anche shape blending)
- Aggiunto supporto per tone mapping usando ACES, ACES approssimato, metodo Reinhard o esponenziale
- Reimplementato il bloom usando un algoritmo ad alta efficienza per GPU mobile
- Risolto l’errore di compilazione dello shader con SHADOW_NORMAL_OFFSET_SLOPE_SCALE disabilitato
- shader: Risolti avvisi di indicizzazione dinamica
- Cambiato il formato di serializzazione interno per i parametri dei componenti personalizzati per supportare più tipi in futuro
- Implementate ulteriori ottimizzazioni del fetch dei vertici GPU e del sovradisegno per il renderer multi-draw
- windows: risolti problemi con i progetti su diverse volumi di archiviazione
Runtime
- Aggiunto supporto per caricare e cambiare più scene tramite handle e cambiando la scena attiva
- Risolto un crash durante l’aggiornamento dei dati di una mesh tramite l’API JavaScript
- Risolto il problema della trasformazione obsoleta sulla radice degli oggetti clonati
API JavaScript/TypeScript
- Chiariti e migliorati i documenti
- Aggiunto
AnimationComponent.setParameterFloat
e.getParameterFloat
per controllare i parametri di blending - Aggiunto
MeshManager.create()
eTextureManager.create()
, deprezzandonew Mesh()
enew Texture()
- Aggiunto
AnimationComponent.onEvent
per reagire agli eventi dalle tracce degli eventi di animazione - Aggiunto
PhysXComponent.sleepOnActivate
- Aggiunto
TextComponent.getBoundingBox
per recuperare il riquadro di delimitazione del testo renderizzato - Aggiunto
Scene
ePrefab
: parti delle scene che possono essere attivate e istanziate - Aggiunti
Property.vector2
,Property.vector3
eProperty.vector4
- Aggiunto
TextComponent.getBoundingBox
eTextComponent.getBoundingBoxForText
- Risolto
Object3D.clone()
a volte clonando un componente due volte invece che quello corretto - Risolti
Object3D
eComponent
non segnati come distrutti quando distrutti dal motore - Deprezzato
.equals()
su classi di risorse. Ora puoi usare===
o==
- Deprezzato
TextComponent.justification
e rinominato inTextComponent.verticalAlignment
Componenti
- Aggiunto il componente ‘orbital-camera’
- Aggiunto il componente ‘input-profile’ per l’integrazione con webxr-input-profiles
- trail: Gestisce correttamente la disattivazione
Contributori Open Source
Un ringraziamento speciale alla comunità per i contributi open source, in particolare a: