Release 1.2.0

Release 1.2.0

Our most powerful release yet brings some first post-processing like Bloom and Tonemapping, HDR environment support, improvements to image-based lighting, animation blending, morph targets, and a JavaScript/Typescript based editor API to write custom tools.

Enhanced Testing 

We created a testing framework that can compare the rendering results of a project to automatically test our examples.

We open-sourced this framework to allow you to test your own projects.

Invisible Changes 

This release is full of invisible ground-work to ensure the architecture of the engine and editor scale with upcoming features:

  • We refactored the internal data model for the editor to be more maintainable, faster, and catch errors.
  • The animation system now uses animation graphs. While they are not exposed to you yet, they already enable new features like animation blending.
  • Multiple scenes are now handled at runtime. This is already useful when appending and loading scenes from JavaScript, but will soon allow efficiently managing resources throughout multiple scenes and resource bundles from the editor as well.
  • The serialization format for custom components was changed to support many more property types in the future.

Changelog 

Editor

  • Add “Animation tools” view for adding event tracks to animations
  • Add JavaScript/Typescript based Editor Plugin API to build custom views and tools
  • Add 1D and 2D blending support to animation component
  • Restyle the UI, fixing many UX issues and using the window space more effectively

Old:

Release 1.2.0
New:
Release 1.2.0

  • Fix infinite packaging loop when an object with static physx component is selected
  • Add search bar to search recent projects in project wizard
  • Add JSON parse errors when failing to load project file or other JSON files
  • Allow reading JSON files with trailing commas for easier merge conflict resolution
  • Recognize .tsx and .jsx as script extensions
  • Add support for loading HDR images
  • Scene View: Shift can now be used with Num7, Num1 and Num3 to view from the opposite axis-aligned directions
  • Scene View: Fix Gizmo axis unclickable, if axis perpendicular to view
  • Scene View: emulate middle mouse button with Alt + left mouse button
  • Scene View: fix mesh visualization rendering mode
  • Scene View: Add toggle for light visualization
  • Project Settings: Also show secondary texture coordinates in rendering settings
  • Add warning about iOS Safari on uncompressed atlas max setting
  • Significantly improve overall editor performance
  • Resources View: Add copy & paste for material resources
  • Add option to disable importing PBR materials as Phong
  • Add checkbox for launching the project with HTTPS, if SSL is set up
  • Avoid packaging unreferenced meshes by default
  • Add support for scene files with separate Tangent and Bitangent attributes
  • Fix race condition between npm install and upgrade of the required api package
  • Silenced texture atlas errors during image compression
  • Fix material thumbnails not rendered on initial project load
  • Add Alt+G, Alt+R, and Alt+S to reset position, rotation and scaling of selected objects
  • Move “Simulate Physics” shortcut to Alt+Shift+S
  • Switch to WEBP for uncompressed images
  • Add importPhysicalAsPhong project setting to allow disabling it
  • Fix --import parameter not properly compiling imported scene
  • Add support for importing EXR files

Engine

  • Add support for 1D and 2D animation blending

  • Add support for animation event tracks

  • Add support for HDR environments

  • Add baking of specular and diffuse GI probes from sky and HDR environment

  • Add support for spherical harmonics diffuse GI probes

  • Add support for 16-bit float (“half float”) parameters in custom materials, declared with mediump

  • Add support for morph targets (also called blend shapes)

  • Add support for tone mapping using ACES, approximated ACES, Reinhard, or exponential method
  • Reimplement bloom with using a highly efficient mobile-GPU friendly algorithm
  • Fix shader compilation error with SHADOW_NORMAL_OFFSET_SLOPE_SCALE disabled
  • shaders: Fix dynamic indexing warnings
  • Switch internal serialization format for custom component parameters to support more types in the future
  • Implement further GPU vertex fetch and overdraw optimizations for multi-draw renderer
  • windows: fix issues with projects on different storage volumes

Runtime

  • Add support for loading and changing multiple scenes via scene handles and switching active scene
  • Fix a crash when updating a mesh’s data via JavaScript API
  • Fix outdated transformation on root of cloned objects

JavaScript/TypeScript API

  • Clarify and improve documentation
  • Add AnimationComponent.setParameterFloat and .getParameterFloat to control blending parameters
  • Add MeshManager.create() and TextureManager.create(), deprecating new Mesh() and new Texture()
  • Add AnimationComponent.onEvent to react to events from animation event tracks
  • Add PhysXComponent.sleepOnActivate
  • Add TextComponent.getBoundingBox to retrieve the bounding box of rendered text
  • Add Scene and Prefab: parts of scenes that can be activated and instantiated
  • Add Property.vector2, Property.vector3, and Property.vector4
  • Add TextComponent.getBoundingBox and TextComponent.getBoundingBoxForText
  • Fix Object3D.clone() sometimes cloning a component twice instead of the correct component
  • Fix Object3D and Component not marked as destroyed when destroyed by the engine
  • Deprecate .equals() on resource classes. You can now use === or ==
  • Deprecate TextComponent.justification and rename to TextComponent.verticalAlignment

Components

  • Add orbital-camera component
  • Add input-profile component for integration with webxr-input-profiles
  • trail: Properly handle deactivation

Open Source Contributors 

A special thanks to the community for the open source contributions, especially to:

Last Update: May 2, 2024

Stay up to date.