Skip to content

Releases: google/filament

v1.4.3

27 Nov 21:13
4ba5d6b
Compare
Choose a tag to compare

Engine

  • Fixed morph shapes not rendering in WebGL.
  • Added ETC2 and BC compressed texture support to Metal backend.
  • Rendering a SAMPLER_EXTERNAL texture before setting an external image no longer results in GPU errors.
  • Fixed a normals issue when skinning without a normal map or anisotropy.
  • Fixed an issue where transparent views couldn't be used with post-processing.
  • Always use higher quality 3-bands SH for indirect lighting, even on mobile.
  • Added support for the Metal backend to bind individual planes of YUV external images.
  • Added support for depth buffer when post-processing is turned off.
  • Improved performance on GPUs that use tile-based rendering.

Materials

  • Fixed an assertion when a parameter array occurs last in a material definition.

Libraries

  • gltfio: fixed blackness seen with default material.

Language Bindings

  • Added support for the latest version of Emscripten.

v1.4.2

30 Oct 23:46
Compare
Choose a tag to compare

Engine

  • Cleaned up the validation strategy in Engine (checks for use-after-destroy etc).
  • OpenGL: Fixed ES 3.0 support on iOS.
  • OpenGL: Added support for KHR_debug in debug builds.

Libraries

  • gltfio: Java clients should no longer call Filament#init. ⚠️
  • gltfio: Added Java / Kotlin bindings for Animator.
  • gltfio: Fixed panic with the Android gltf-bloom demo.

v1.4.1

18 Oct 20:39
3008123
Compare
Choose a tag to compare

Engine and API

  • Added missing API documentation.
  • Fixed crash for sandboxed macOS apps using Filament.
  • Fixed an issue that limited the camera near plane to ~1mm.
  • Added Android sample for Camera Stream.
  • Fixed an Xcode assertion when rendering skinned meshes using the Metal backend.
  • Added support for Core Animation / Metal frame synchronization with Metal backend.
  • Fixed an issue with culling in MaterialInstance.

Tools, Builds, and Infrastructure

  • Fix additional compatibility issues with MSVC, including the Vulkan backend.
  • matdbg: fixed missing symbol issue when linking against debug builds.
  • filamat: fixed crash when using the "lite" version of the library.
  • matinfo: Fix a crash with on Windows.
  • gltfio: fixed an animation loop bug.
  • gltfio: added support for sparse accessors.

Language Bindings and Utilities

  • Add JS binding to unary Camera::setExposure.

v1.4.0

30 Sep 22:45
Compare
Choose a tag to compare

Engine and API

  • API Breakage: Simplified public-facing Fence API.
  • Face direction is now reversed when transforms have negative scale.
  • Minimum API level on Android is now API 19 instead of API 21.
  • Added missing API documentation.
  • Improved existing API documentation.
  • Added Camera::setExposure(float) to directly control the camera's exposure.

Materials Enhancements

  • Added the ability to modify clip space coordinates in the vertex shader.
  • Backface culling can now be toggled on material instances.
  • Dielectrics now behave properly under a white furnace (energy preserving and conserving).
  • Clear coat roughness now remains in the 0..1 (previously remapped to the 0..0.6 range).

Tools, Builds, and Infrastructure

  • Filament can now be built with msvc 2019.
  • Windows: Fixed linker error in debug builds.
  • gltfio: Fixed several limitations with ubershader mode.
  • gltfio: Fixed a transforms issue with non-uniform scale.
  • matdbg: Web server must now be enabled with an environment variable.
  • matdbg: Added support for editing GLSL and MSL code.

Language Bindings and Utilities

  • webgl: Fixed an issue with JPEG textures.

v1.3.2

26 Aug 23:35
Compare
Choose a tag to compare

Engine

  • Added an internal texture cache for render targets.
  • Fix bad normal mapping with skinning.
  • Added basic #include support in material files.

Tools and Infrastructure

  • Improved diagnostic output in matc and matinfo.
  • Added a web server for real-time inspection of shader code.

Language Bindings and Utilities

  • Java clients can now call getNativeObject().
  • Fixed intermittent memory overflow with JavaScript clients.

Backends

  • Fixed potential Metal memory leak.

v1.3.1

08 Aug 19:12
6b41527
Compare
Choose a tag to compare

Engine

  • IndirectLight can now be queried for dominant direction and color.
  • Introduced custom attributes, accessible from the vertex shader.
  • Added support for vertex morphing.

Tools and Infrastructure

  • Improved cmgen SH with HDR images. (:warning: makes brighter IBL's)
  • Unified release labels for Sceneform and npm.

Language Bindings and Utilities

  • Added Java / Kotlin bindings for KtxLoader.
  • Added JavaScript / Typescript bindings for the new RenderTarget class.
  • Added base path to glTF loadResources method for JavaScript.

Backends

  • Added support for iOS CVPixelBuffer external images with the OpenGL backend.

v1.3.0

03 Jul 20:24
Compare
Choose a tag to compare

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

sceneform-1.9pr4

27 Jun 00:18
Compare
Choose a tag to compare
sceneform-1.9pr4 Pre-release
Pre-release

This release of Filament is a check point release towards Sceneform 1.9.

List of relevant changes since sceneform-1.9pr3:

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

Enhancements

Engine

  • Added gltf_bloom Android sample to show gltfio and the RenderTarget API.
  • Added getMaterialInstanceAt to the Java version of RenderableManager.
  • Fix JNI bindings for setting values in parameter arrays.
  • Added JNI bindings for the gltfio library.
  • 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

Tools

  • Fix support for parameter arrays in .mat files.

sceneform-1.9pr3

18 Jun 01:02
Compare
Choose a tag to compare

This release of Filament is a check point release towards Sceneform 1.9.

List of relevant changes since sceneform-1.9pr2:

Enhancements

Engine

  • Introduced RenderTarget API that allows View to reference an offscreen render target.
  • Added lucy_bloom sample to demonstrate the new RenderTarget API.
  • Added Screen Space Ambient Occlusion support (SAO)
  • New blending modes: multiply and screen
  • Fixed an issue when sorting blended objects with different blending modes
  • 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
  • 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
  • JavaScript MaterialInstance now supports vec4 colors.
  • Implemented hard fences for the Metal backend, enabling dynamic resolution support.
  • Created a RELEASE_NOTES.md file, to be updated with significant PRs.

Tools

  • Improved robustness in the tangents utility for meshes that have tangents and normals.
  • 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 when using UVs to generate tangents.

sceneform-1.9pr2

26 Apr 20:30
Compare
Choose a tag to compare
sceneform-1.9pr2 Pre-release
Pre-release

This release of Filament is a check point release towards Sceneform 1.9.

List of relevant changes since sceneform-1.9pr1:

⚠️ This version breaks older Materials

Enhancements

Engine

  • Add postLightingColor property to materials (#1057)
  • Add new shading model to Filament for specularGlossiness. (#1083)
  • Allow dynamic doubleSided and materialThreshold
  • 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

Compatibility

  • Use ASharedMemory on Android when available
  • Don't call EGL during static initialization
  • Workaround a UBO/glFlush interaction on some GPUs

Documentation

  • Add Filamat documentation (#1103)

Tools

Refactoring

  • Separate src/driver into its own library, libbackend
  • Rename namespace filament::driver -> filament::backend
  • Make all subclasses of Platform private, except OpenGLPlatform

libmath

  • Conversion between vec and vec are now implicit
  • Added vec{2|3|4}
  • Remove vector comparison operators

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)