Release 0.8.5

Release 0.8.5

Modern JavaScript support, pipelines with improved foliage rendering, project templates and many many bugfixes and performance optimizations, greatly improving stability.

> Full changelog

Deep-Dive 

This release adds a couple of very powerful new features which suggest a closer look:

Modern JavaScript Support 

While this lets you build your custom components in ES6+, making use of const, => and class, this feature is so much more than that.

With it comes the power to use the entire NPM ecosystem, bundle JavaScript code yourself, or even use other languages like TypeScript!

As we want Wonderland Engine to integrate nicely with your bundling process, we published two packages: @wonderlandengine/api and @wonderlandengine/components.

Pipelines 

More fine grained control over GPU pipeline features like blending empower you to build a wide range of effects. Pipelines also allow disabling parts of shaders tune performance by only using exactly what you use.

With it comes a powerful new “Foliage” pipeline, which provides higher quality for plant models with alpha masking.

Project Templates 

Wonderland Engine already makes you super productive with its rapid development workflow. Yet, not having to do something in the first place can be even faster. To reduce the amount of boilerplate work needed, we now provide templates to kickstart your project.

And if you need more, you can create your own and share with the community.

Changelog 

Editor

  • Support for JavaScript ES2018 through V8
  • The Editor now parses the resulting bundle rather than the source js files
  • Added option to build JavaScript bundle via npm script
  • Open-Sourced the built-in editor components
  • Published editor components as npm package
  • Added project templates for creating projects
  • Added support for custom project templates
  • Added pipeline support
    • Added support for alpha to coverage (“alpha masking with MSAA”)
    • Added support for arbitrary blending configurations
    • Added option to disable depth test and depth write masks
    • Added support for double sided materials
    • Added “Foliage” pipeline for double sided materials with alpha to coverage
  • Added generation of sourcemaps for JavaScript bundles
  • Added experimental support for mip mapping on compressed texture atlas
  • Added Ctrl + Drag’n’Drop from Property View to Scene Outline to copy components to other objects
  • Added framebufferScalingFactor setting in Project Settings
  • Enabled MSAA in Scene View to match runtime look
  • Improved scene loading times
  • Added folders in file area of Asset Browser
  • Fixed a few rare crashes when making changes while packaging
  • Fixed a crash when dragging nothing into the Asset Browser
  • Fixed return values on failures with --windowless flag
  • Fixed table row highlights in Resources View
  • Fixed some resources not renameable in Resources View
  • Fixed some resources not selectable in property dropdowns
  • Fixed scaling gizmo in Scene View for objects with parent
  • Improved UI style and layout
  • Improved fluidity of transformation gizmo for scenes with many objects
  • Improved support for OBJ file import
  • Removed superfluous log output to reduce clutter

Templates

  • Added “Mobile AR” template with hit test
  • Added “VR” template with hand tracking, controllers, teleport locomotion and cursor interaction

Runtime

  • Modularized JavaScript API
  • Open-Sourced the API (https://github.com/WonderlandEngine/api)
  • Published API as npm package (https://www.npmjs.com/package/@wonderlandengine/api)
  • Made all WebXR reference spaces requested and most advanced selected by default
  • Fixed WasmMemroy not allocatable on Oculus Quest during development of larger projects
  • Fixed crash when deactivating a skinned mesh
  • Improved buttons to enter VR/AR
  • Added background gradient for better look until runtime first paint
  • Fixed warnings being logged as errors in the browser console
  • Fixed start() being called on JavaScript components deactivated in the editor

Engine

  • Fixed anti-aliasing when bloom enabled
  • Improved performance of ray casts agains Box and AxisAlignedBox
  • Improved performance of updating text
  • Significantly improved scenegraph performance for scenes with many dynamic object trees (skinned meshes)

JS API

  • Fixed exceptions on WL.Material.* parameter access
  • Added setter for WL.PhysXComponent.shape, extents and various other properties to modify PhysX rigid bodies
  • Added WebXR.refSpace to select reference space
  • Fixed WL.Object.getComponents() sometimes returning incorrect component types
  • Added WL.Object.active to (de-)activate all components on an object
  • Added set WL.Object.transformWorld and set WL.Object.transformLocal
  • Fixed active state turning invalid when changed during onActivate()
  • Significantly improved heap memory fluctuation and garbage collection behavior

JavaScript Components

  • cursor: Added cursorRayScalingAxis to scale ray object on specific axis
  • cursor: Fixed onHover() now receiving hover object parameter
  • teleport: Overhauled to support thumbstick and orientation input in VR sessions
  • teleport: Fixed center of space teleported instead of player
  • vr-mode-active-switch: Fixed behavior when deactivated and now avoids deactivating itself
  • hand-tracking: Added options to (de-)activate display mesh and controller objects depending on whether a pose is available
  • Added finger-cursor component to interact with cursor-target through collision overlap (e.g. with hand tracking on the tip of index finger)

Docker Image

  • Switched base image to ubuntu:20.04
  • Added edge tag for release candidate testers
Last Update: June 18, 2021

Stay up to date.