Release 0.9.0
This release features a first set of game changing rendering features and major improvements to rendering capabilities, iOS support and many more bug fixes and UX improvements.
Texture Streaming
Texture streaming finally breaks us free from limits on uncompressed textures and are now streamed dynamically to the GPU based on what is required for rendering the current view of the user.
It improves GPU memory usage, loading times and allows using more and higher resolution textures.
Example of a 16k x 8k texture being streamed.
Full-screen Draws
Full-screen draws like Sky provide a convenient and efficient way of adding a background image, equirectangular environment or gradient to your experience.
Spot Lights
Spot lights give even more control over the lighting in the scene.
Physically Based Shaders
Physically based shading allows rendering more realistic materials, like metals and plastics.
Slug Text Rendering
With our integration of the Slug text rendering middleware, we now have state of the art text rendering. The text remains crisp and clear in VR and improves readability and removes any visual artefacts of the previous method. This integration paves the way for way more advanced text rendering coming in the near future.
iOS Safari 15 Support
This release also finally adds support for Desktop and iOS Safari 15. This is especially important for Web AR experiences.
Package Size
We packed in all of these new features this while keeping the runtime binary size almost the same and greatly reducing the installer size on all platforms! Additionally some very significant reductions in mesh sizes and the texture streaming improve load times even more.
Changelog
Editor
- Switched to outlines for selection highlights
- Fixed Profiler GPU timing results
- Unlocked navigation in Profiler view
- Fixed image downsizing crash for certain sizes
- Fixed rest of Euler rotation
- Fixed various issues around login flow
- Fixed various crashes and issues related to pipeline reordering
- Removed invalid blend settings
- Split alpha and RGB blend settings
- Switched to full instancing of scene files on import, allowing multiple imports of the same file
- Allow dragging materials onto scene objects
- Allow dragging JavaScript files onto component list
- Properly exit when
--project
fails to load on command line - Added
MOZ_lightmap
support for GLTF import - Added PBR material support for GLTF import
- Added support for
.webp
image import - Fixed infinite repackaging loop when adding empty path to scripts list
- Majorly improve compression of meshes in .bin files
- Ensured even larger projects package in less than 1 second
- Fixed bug where images go missing when extension is in uppercase
- Fixed various issues with PhysX debug visualization not updating
- Fixed minor intuition issues in undo with transformation gizmo
- Added convenient toggle for simulating PhysX in Scene view toolbar
- Improved speed of loading compressed texture cache
- Generate tangents for meshes that were imported without
- Fixed window title not updated correctly according to project name
- Fixed deleting directory in directory list of Asset Browser
- Remove notification when saving a project
- MacOS
- Fixed execution of npm build scripts for packaging
- Fixed crash during texture compression due to use of unsupported BC7 format
- Fixed various other crashes
Runtime
- Added error when loading .bin files that were packaged in older versions
- Fixed iOS safari support
Engine
- Switched to Wonderland Texture Streaming for compressed textures
- Enables new compressed texture atlas sizes up to 32k x 32k
- Adds mip map support for compressed textures
- Reduces GPU memory usage and significantly improves texture read speed
- Reduces initial scene loading time
- Switched to Slug text rendering
- Improved per-drawcall object count even further
- Added imported lightmap support to Phong
- Added secondary UV support
- Added full-screen passes
- Sky renders an equirectangular image
- Background renders a background image and/or color gradient
- Added “Physical” shader for PBR materials
- Added spot lights
- Fully delete objects from project files when deleted
- Implemented per-actor PhysX material settings
JS API
- Fixed setting
ViewComponent.near
andViewComponent.far
having no effect in XR sessions - Renamed
PhysXComponent.restitution
toPhysXComponent.bounciness
- Fixed
PhysXComponent.rayCast
not returning multiple results - Added
Mesh.getBoundingSphere()
andMesh.destroy()
- Added new API for modifying mesh data at runtime
- Allow passing extra arguments to
webxr_request_session_func
, e.g. for using DOM overlay
Components
- video-texture: Fixed disabling autoplay still playing video
- device-orientation-look: Fixed incorrect rotation depending on initial orientation