Skip to content

v1.3.0

Compare
Choose a tag to compare
@prideout prideout released this 03 Jul 20:24

Our npm package was last updated in April. Some of the changes since then:

⚠️ this version breaks compiled materials, use matc to recompile
⚠️ this version breaks IBL cubemaps, use cmgen to recreate them

Enhancements

Engine

  • Added support for RGB_11_11_10
  • Removed support for RGBM (:warning: source compatibility breakage)
  • IBL cubemap can now be of any size
  • Texture::generatePrefilterMipmap can be used for runtime generation of a reflection cubemap
  • Introduced RenderTarget API that allows View to reference an offscreen render target.
  • Added Screen Space Ambient Occlusion support (SAO)
  • Implemented hard fences for the Metal backend, enabling dynamic resolution support.
  • Stable mode for shadows
  • Improve shadows depth resolution for large scenes
  • Add support for polygon offset in shadow map parameters
  • Bake the constant bias into the shadow-map
  • Better clamping for dot(N, V) (#1106)
  • Decouple tone-mapping, FXAA, MSAA and dynamic resolution
  • MSAA is now disabled when post-processing is disabled

Materials

  • Added specular ambient occlusion to compute a new AO term applied to specular reflections
    (see specularAmbientOcclusion property in materials)
  • Added multi-bounce ambient occlusion to brighten AO and preserve local color
    (see multiBounceAmbientOcclusion property in materials)
  • Micro-shadowing is now applied to material ambient occlusion
  • Use a smaller 64x64 DFG LUT on mobile to reduce binary size
  • The material property curvatureToRoughness has been replaced with specularAntiAliasing.
    This new specular anti-aliasing solution offers more control via two new properties:
    specularAntiAliasingVariance and specularAntiAliasingThreshold. They can also be set on
    material instances if needed
  • New blending modes: multiply and screen
  • Add postLightingColor property to materials (#1057)
  • Add new shading model to Filament for specularGlossiness. (#1083)
  • Allow dynamic two-sided lighting and materialThreshold

Language Bindings

  • Added getMaterialInstanceAt to the Java version of RenderableManager.
  • Fix JNI bindings for setting values in parameter arrays.
  • Added JNI bindings for the gltfio library.
  • JavaScript MaterialInstance now supports vec4 colors.

Samples

  • Added lucy_bloom desktop C++ sample to demonstrate the new RenderTarget API.
  • Added gltf_bloom Android Kotlin sample to show gltfio and the RenderTarget API.

Tools, Libraries and Infrastructure

  • Created a RELEASE_NOTES.md file, to be updated with significant PRs.
  • Fix support for parameter arrays in .mat files.
  • Added a distance field generator to libimage.
  • Further reduced filamat binary size by removing reliance on stdlib.
  • Added a new, smaller, version of the filamat library, filamat_lite. Material optimization and
    compiling for non-OpenGL backends have been removed in favor of a smaller binary size.
  • Improved SurfaceOrientation robustness.

Bug fixes

  • Fix FBO leak when using MSAA in some cases
  • Honor clear color, fixes #1125
  • Better frustum/box intersection, make code more robust
  • Fix the calculation of the shadow constant bias
  • Fix LISPSM warping frustum computation
  • Actually set the IBL rotation from the builder
  • Don't flip the normals (#1060)
  • Fix min/max calls in Box::unionSelf (#984)
  • Fixed an issue when sorting blended objects with different blending modes