Skip to content

Releases: google/filament

v1.9.6

26 Oct 17:32
Compare
Choose a tag to compare
  • Added View::setVsmShadowOptions (experimental)
  • Add anisotropic shadow map sampling with VSM (experimental)
  • matc: fixed bug where some compilation failures still exited with code 0
  • Vulkan + Android: fix build break
  • Add optional XCB support to PlatformVkLinux
  • Fix Vulkan black screen on Windows with NVIDIA hardware

v1.9.5

19 Oct 17:54
Compare
Choose a tag to compare
  • Added a new Live Wallpaper Android sample
  • UiHelper now supports managing a SurfaceHolder
  • Fix: an internal texture resource was never destroyed
  • Fix: hang on 2-CPU machines
  • Fix: Vulkan crash when using shadow cascades
  • Linux fixes for headless SwiftShader
  • Fix null pointer dereference in FIndirectLight
  • Fix Windows build by avoiding nested initializers
  • Vulkan: support readPixels and headless swap chains
  • VSM improvements

v1.9.4

12 Oct 18:02
Compare
Choose a tag to compare
  • Add screen space cone tracing (SSCT)
  • Improvements to VSM shadow quality
  • New ShadowOptions control to render Variance Shadow Maps (VSM) with MSAA (experimental)
  • Improvements and fixes to screen-space ambient occlusion
  • gltf_viewer: add --headless option
  • gltf_viewer: Add new automation UI and functionality

v1.9.3

05 Oct 17:40
Compare
Choose a tag to compare
  • engine: Added new APIs to enable/disable screen space refraction
  • engine: Fix, flip the shading normal when det < 0.
  • gltfio: Fix animation by clamping the per-channel interpolant.
  • gltfio: add async cancellation API
  • gltfio: Fix "uniform not found" errors.
  • gltfio: Disable clear coat layer IOR change in glTF files (#3104)
  • Vulkan: fix final image barrier used for swap chain.
  • matdbg: Various improvements
  • JavaScript bindings: fix TextureUsage bitmask.
  • cmgen / mipgen: add opt-in for ASTC / ETC support.

v1.9.2

28 Sep 17:31
Compare
Choose a tag to compare
  • Fixes / improvements for contact shadows, fog, and DOF
  • Reduce SSAO creases caused by geometry tessellation
  • Fix compilation warnings and issue with Clang 12
  • Fix JNI crashes
  • Rename .blurScale to .cocScale in DOF options

v1.9.1

21 Sep 17:03
Compare
Choose a tag to compare
  • Improvements to SSAO quality
  • Fix unoptimized shader crashes with certain OpenGL drivers
  • Add float versions of math constants to libmath
  • filament-utils: fix, CoroutineScope job should be canceled before destroy

v1.9.0

14 Sep 18:03
Compare
Choose a tag to compare

Engine (new features ✨)

  • MASKED mode now leaves destination alpha intact (useful for transparent targets).
  • MASKED mode now benefit from smoothing in unlit materials.
  • Fixed frame graph crash when more than 32 stages were required.
  • Temporal Anti-Aliasing (TAA) is now available as a complement to MSAA and FXAA. It can be turned
    on and controlled using View.setTemporalAntiAliasingOptions().
  • Added texture getters to Skybox and IndirectLight (C++, Java, JavaScript).
  • Added APIs to create 3D textures and 2D texture arrays.
  • Internal buffers can now be sized at compile times for applications that render very large
    numbers of objects.
  • View.setAmbientOcclusion() is deprecated in favor of View.setAmbientOcclusionOptions
    (⚠️ API change).
  • Variance Shadow Mapping (VSM) is now available as an alternative to PCF shadows (experimental).
  • Fixed translucent views with custom render targets.
  • Use "reverse-z" for the depth buffer.
  • Added a way to create an Engine asynchronously.
  • Highlights are now more stable under depth of field.
  • New option to compress highlights before bloom.
  • Improvements and fixes to SSAO and DOF.

Libraries and Tools

  • Fixed KHR_materials_transmission to use the FADE blending mode.
  • Fixed several memory leaks in gltfio and the JavaScript bindings.
  • Reduced compiled material sizes by removing unnecessary variants.

Platforms and Backends

  • Fixed several platform-specific Vulkan bugs and crashes.
  • Switched to C++17.
  • Many improvement and fixes in the Vulkan backend.
  • Many improvement and fixes in the Metal backend.
  • Improved MSAA implementation compatibility on Android devices.

v1.8.1

30 Jul 19:22
Compare
Choose a tag to compare

Engine (new features ✨)

  • Color grading now has a quality option which affects the size and bit depth of the 3D LUT. See the documentation of
    ColorGrading for more information.
  • Added validation in Texture::setImage().
  • Improved quality and performance of the depth of field effect.
  • Fixed transform hierarchy memory corruption when a node is set to be parentless.
  • Fixed refraction/transmission roughness when specular anti-aliasing is enabled.

Libraries and tools

  • Fixed camera aspect ratio when loading a camera from a glTF file.
  • gltfio now uses specular anti-aliasing by default.
  • gltfio now supports the KHR_materials_transmission extension.
  • Compiled materials do not perform unnecessary fp32 operations anymore.

Platforms and Backends

  • New CocoaPods sample for iOS.
  • Filament for iOS now supports iOS 11.
  • Updated the Emscripten SDK to 1.39.19.
  • Fixed skinning issue with Emscripten.
  • JavaScript APIs for color grading and the vignette effect.
  • Added various missing APIs to Java and JavaScript bindings.
  • Fixed crashes in some browsers and on some mobile devices caused by
    Google-style line directives in shaders.
  • Fixed crash in the Metal backend when more than 16 samplers are bound.

Examples

KHR_materials_transmission test asset as rendered by gltfio:

Screen Shot 2020-07-30 at 12 28 47 PM

v1.8.0

09 Jul 18:55
77aec40
Compare
Choose a tag to compare

Engine (new features ✨)

  • View::setToneMapping is deprecated, use View::setColorGrading instead. (⚠️ API change).
  • Tone mapping is now applied via a LUT.
  • New tone mappers: linear, ACES, ACES legacy (default), filmic (tone mapper from previous versions
    of Filament), Reinhard, Uchimura, and display range (to validate scene exposure). The new default
    tone mapper has a much improved behavior in high intensity areas.
  • Color grading capabilities per View: white balance (temperature/tint), channel mixer,
    tonal ranges (shadows/mid-tones/highlights), ASC CDL (slope/offset/power), contrast, vibrance,
    saturation, and curves.
  • New vignette effect.

Engine Changes

  • New depth-of-field (DoF) algorithm, which is more plausible and about an order of magnitude faster
    (about 4ms on Pixel4).
  • SSAO now has an optional high(er) quality upsampler.
  • Improved MSAA performance on mobile.
  • Improved performance of the post-process pass when bloom is disabled on mobile.
  • Added support for 3D textures.

Libraries and tools

  • gltf_viewer now supports viewing with glTF cameras.
  • gltfio now uses high precision for texture coordinates.
  • gltfio now supports importing glTF cameras.
  • gltfio now supports simple instancing of entire assets.
  • gltfio has improved performance and assumes assets are well-formed.
  • gltfio now supports name and prefix lookup for entities.
  • gltfio now provides Java/JavaScript APIs to access lights.
  • glfio now relies on the job system for various expensive tasks.
  • ModelViewer now allows resources to be fetched off the UI thread.

Platforms and Backends

  • Improved JavaScript API for SurfaceOrientation and Scene.
  • Updated JavaScript API around Camera construction / destruction (⚠️ API change)
  • Add missing JavaScript API for View::setVisibleLayers().
  • Fixed incorrect handling of texture swizzling.
  • Fixed regression in JavaScript IcoSphere that caused tutorial to fail.
  • Fixed private API access on some versions of Android.
  • Fixed bug in the Metal backend when SSR and MSAA were turned on.
  • Fixed Metal issue with BufferDescriptor and PixelBufferDescriptors not being called on
    the application thread.
  • Add support for DoF with Metal backend.
  • Many improvements and bug fixes in Metal and Vulkan backends.

Examples

Improved depth-of-field

Depth-of-field off and on:

Screen Shot 2020-07-09 at 12 17 49 PM

Screen Shot 2020-07-09 at 12 17 51 PM

Vignette and color grading

color_grading

vignette

curves

Tone mapping

Comparison between the old tone mapper (now called "Filmic") and the new default "ACES (legacy)" tone mapper. Now how areas of high intensity (sun in the skybox, emissive red object in the foreground) behave in both cases.

Screen Shot 2020-07-09 at 11 58 45 AM

Screen Shot 2020-07-09 at 11 58 42 AM

v1.7.0

15 May 17:43
8780d7a
Compare
Choose a tag to compare

⚠️ This release breaks compiled materials, use matc to recompile.

Engine (new features ✨)

  • Improved Depth of Field effect: bokeh rotates with the aperture diameter, improved CoC calculation, feather blur radius
  • Introduced getNormalizedViewportCoord shader API
  • MaterialInstance now have optional names
  • Added basic SwiftShader support

Engine Changes

  • Fixed SwapChain resizing issues in Vulkan
  • Added debug option to track Entities
  • Fixed Camera entity leaks
  • Removed problematic CreateEliminateDeadMembersPass, which broke UBO layout
  • Only implement flushAndWait() debugging on android
  • Added assert that the engine is not terminated in flushAndWait()
  • Added several fixes and improvements around objects lifetime management

Libraries

  • gltfio: AssetLoader now loads names for mesh-free nodes
  • gltfio: Material names are now preserved in ubershader mode

Platforms and Backends

  • JNI constructors are now "package private" unless they take an Engine
  • Fixed JNI objects allocation and memory corruption