1626 lines
67 KiB
Markdown
1626 lines
67 KiB
Markdown
# Filament Release Notes log
|
||
|
||
This file contains one line summaries of commits that are worthy of mentioning in release notes.
|
||
A new header is inserted each time a *tag* is created.
|
||
|
||
**Do not edit this file unless you are performing a release or cherry-picking into an rc/ branch.**
|
||
Instead, if you are authoring a PR for the main branch, add your release note to
|
||
[NEW_RELEASE_NOTES.md](./NEW_RELEASE_NOTES.md).
|
||
|
||
## v1.59.0
|
||
|
||
- materials: five custom variables (varyings) are now available on the condition that the `color` attribute is not requested (b/404930099). [⚠️ **New Material Version**]
|
||
|
||
## v1.58.2
|
||
|
||
- engine: Generate 1D instead of 3D LUTs for color grading whenever possible.
|
||
|
||
## v1.58.1
|
||
|
||
|
||
## v1.58.0
|
||
|
||
- materials: add an optional `transformName` field to sampler material parameters. [⚠️ **New Material Version**]
|
||
|
||
## v1.57.3
|
||
|
||
- android: breaking changes to API KTX1Loader::createIndirectLight and KTX1Loader::createSkybox
|
||
|
||
## v1.57.2
|
||
|
||
- Support including PlatformMetal.h in C++ files.
|
||
|
||
## v1.57.1
|
||
|
||
|
||
## v1.57.0
|
||
|
||
- matdbg: Add support for debugging ESSL 1.0 shaders
|
||
- backend: New platform API to better handle external textures [⚠️ **New Material Version**]
|
||
|
||
## v1.56.8
|
||
|
||
|
||
## v1.56.7
|
||
|
||
|
||
## v1.56.6
|
||
|
||
fix crash: the 'target_node' of Animation Channel may be nullpointer.
|
||
|
||
## v1.56.5
|
||
|
||
|
||
## v1.56.4
|
||
|
||
|
||
## v1.56.3
|
||
|
||
|
||
## v1.56.2
|
||
|
||
- vk: fix stage pool gc logic
|
||
|
||
## v1.56.1
|
||
|
||
## v1.56.0
|
||
|
||
- backend: descriptor layouts distinguish samplers and external samplers (b/376089915) [⚠️ **New Material Version**]
|
||
|
||
## v1.55.1
|
||
|
||
|
||
## v1.55.0
|
||
- Add descriptor sets to describe shader resources. [⚠️ **New Material Version**]
|
||
|
||
## v1.54.5
|
||
|
||
|
||
## v1.54.4
|
||
|
||
- Add support for multi-layered render target with array textures.
|
||
|
||
## v1.54.3
|
||
|
||
|
||
## v1.54.2
|
||
|
||
- Add a `name` API to Filament objects for debugging handle use-after-free assertions
|
||
|
||
## v1.54.1
|
||
|
||
|
||
## v1.54.0
|
||
|
||
- materials: add a new `stereoscopicType` material parameter. [⚠️ **New Material Version**]
|
||
- Fix a crash when compiling shaders on IMG devices
|
||
|
||
## v1.53.5
|
||
|
||
- engine: Fix bug causing certain sampler parameters to not be applied correctly in GLES 2.0 and on
|
||
certain GLES 3.0 drivers.
|
||
|
||
## v1.53.4
|
||
|
||
|
||
## v1.53.3
|
||
|
||
- Add drag and drop support for IBL files for desktop gltf_viewer.
|
||
|
||
## v1.53.2
|
||
|
||
|
||
## v1.53.1
|
||
|
||
|
||
## v1.53.0
|
||
|
||
- engine: fix skinning normals with large transforms (b/342459864) [⚠️ **New Material Version**]
|
||
|
||
## v1.52.3
|
||
|
||
|
||
## v1.52.2
|
||
|
||
|
||
## v1.52.1
|
||
|
||
- Add instructions for using Mesa for software rasterization
|
||
|
||
## v1.51.9
|
||
|
||
|
||
## v1.51.8
|
||
|
||
- filagui: Fix regression which broke WebGL
|
||
- Add a new Engine::Config setting to control preferred shader language
|
||
- Add `getEyeIndex` vertex API
|
||
- ios: Remove bitcode from iOS builds
|
||
|
||
## v1.51.7
|
||
|
||
- Add new matedit tool
|
||
- filagui: Support rendering `GL_TEXTURE_EXTERNAL_OES` textures.
|
||
- `setFrameScheduledCallback` now takes a `utils::Invocable`.
|
||
- engine: Add `isPaused()`
|
||
|
||
## v1.51.6
|
||
|
||
- Add new matedit tool
|
||
- filagui: Support rendering `GL_TEXTURE_EXTERNAL_OES` textures.
|
||
|
||
## v1.51.5
|
||
|
||
|
||
## v1.51.4
|
||
|
||
|
||
## v1.51.3
|
||
|
||
|
||
## v1.51.2
|
||
|
||
- engine: Add experimental APIs `Engine::builder::paused()` and `Engine::setPaused()`
|
||
|
||
## v1.51.1
|
||
|
||
|
||
## v1.51.0
|
||
|
||
- materials: add support for post-lighting mix factor (b/328498606) [⚠️ **New Material Version**]
|
||
|
||
## v1.50.6
|
||
|
||
- Add new API `SwapChain::getFrameScheduledCallback`
|
||
- vulkan: fixed validation error VUID-vkAcquireNextImageKHR-semaphore-01779
|
||
- opengl: Add support for protected content swapchains and contexts
|
||
|
||
## v1.50.5
|
||
|
||
- android: NDK 26.1.10909125 is used by default
|
||
- android: Minimum API level on Android is now API 21 instead of API 19. This allows the use of OpenGL ES 3.1
|
||
- rendering: New PBR Neutral tone mapper, designed to preserve materials color appearance
|
||
- android: Change default frameRateOptions.interval to 1.0
|
||
|
||
## v1.50.4
|
||
|
||
|
||
## v1.50.3
|
||
|
||
|
||
## v1.50.2
|
||
|
||
|
||
## v1.50.1
|
||
|
||
- Metal: fix some shader artifacts by disabling fast math optimizations.
|
||
- backend: remove `atan2` overload which had a typo and wasn't useful. Fixes b/320856413.
|
||
- utils: remove usages of `SpinLock`. Fixes b/321101014.
|
||
|
||
## v1.50.0
|
||
- engine: TAA now supports 4x upscaling [BETA] [⚠️ **New Material Version**]
|
||
|
||
## v1.49.3
|
||
|
||
- matc: Generate stereo variants for FL0 materials [⚠️ **Recompile materials**]
|
||
|
||
## v1.49.2
|
||
|
||
|
||
## v1.49.1
|
||
|
||
|
||
## v1.49.0
|
||
|
||
- matc: Fix ESSL 1.0 codegen when using external samplers [⚠️ **Recompile materials**]
|
||
|
||
## v1.48.0
|
||
|
||
- matc: New option `-1` to disable generation of ESSL 1.0 code in Feature Level 0 materials
|
||
- matc: Support optimizations for ESSL 1.0 code [⚠️ **Recompile materials**]
|
||
|
||
## v1.47.0
|
||
|
||
- engine: Support up to 4 side-by-side stereoscopic eyes, configurable at Engine creation time. See
|
||
`Engine::Config::stereoscopicEyeCount`. [⚠️ **Recompile Materials**]
|
||
|
||
## v1.46.0
|
||
|
||
- engine: Allow instantiating Engine at a given feature level via `Engine::Builder::featureLevel`
|
||
- matc: Enable `GL_OES_standard_derivatives` extension in ESSL 1.0 shaders
|
||
- matc: Fix code generation of double sided and masked materials in ESSL 1.0 shaders
|
||
- filagui: Add support for feature level 0
|
||
- matc: Add support for post-process materials in feature level 0
|
||
- engine: Add `Material::getFeatureLevel()`
|
||
- engine: Add missing `Material::getReflectionMode()` method in Java
|
||
- engine: Support basic usage of post-processing materials on feature level 0
|
||
- engine: Fix critical GLES 2.0 bugs
|
||
- engine: Add `FILAMENT_ENABLE_FEATURE_LEVEL_0` build-time option optionally allow building Filament
|
||
without FL0 support.
|
||
|
||
## v1.45.1
|
||
|
||
- engine: Added parameter for configuring JobSystem thread count
|
||
- engine: In Java, introduce Engine.Builder
|
||
- gltfio: fix ubershader index for transmission&volume material
|
||
- engine: New tone mapper: `AgXTonemapper`.
|
||
- matinfo: Add support for viewing ESSL 1.0 shaders
|
||
- engine: Add `Renderer::getClearOptions()` [b/243846268]
|
||
- engine: Fix stable shadows (again) when an IBL rotation is used
|
||
|
||
## v1.45.0
|
||
|
||
- materials: fix alpha masked materials when MSAA is turned on [⚠️ **Recompile materials**]
|
||
- materials: better support materials with custom depth [**Recompile Materials**]
|
||
- engine: fade shadows at shadowFar distance instead of hard cutoff [⚠️ **New Material Version**]
|
||
|
||
## v1.44.0
|
||
|
||
- engine: add support for skinning with more than four bones per vertex.
|
||
- engine: remove `BloomOptions::anamorphism` which wasn't working well in most cases [**API CHANGE**]
|
||
- engine: new API to return a Material's supported variants, C++ only (b/297456590)
|
||
- build: fix emscripten-1.3.46 build
|
||
- engine: materials built for feature level 0 can now also be loaded in higher feature levels [⚠️
|
||
**New Material Version**]
|
||
|
||
## v1.43.1
|
||
|
||
## v1.43.0
|
||
|
||
- gltfio: Fix possible change of scale sign when decomposing transform matrix for animation
|
||
- engine: Fixes "stable" shadows (see b/299310624)
|
||
|
||
## v1.42.2
|
||
|
||
- Fix possible NPE when updating fog options from Java/Kotlin
|
||
- The `emissive` property was not applied properly to `MASKED` materials, and could cause
|
||
dark fringes to appear (recompile materials)
|
||
- Allow glTF materials with transmission/volume extensions to choose their alpha mode
|
||
instead of forcing `MASKED`
|
||
- Fix a crash in gltfio when not using ubershaders
|
||
- Use flatmat for mat parameter in jsbinding
|
||
- Fix TextureFlags for sheenRoughnessMap when textures of sheenRoughnessMap and sheenColorMap is same
|
||
- Directional shadows can now be transformed (b/297095805)
|
||
|
||
## v1.42.1
|
||
|
||
- Fix potential `EXC_BAD_ACCESS` with Metal backend: b/297059776
|
||
- `setFrameCompletedCallback` now takes a `backend::CallbackHandler`.
|
||
|
||
## v1.42.0
|
||
|
||
- engine: add preliminary support for instanced stereoscopic rendering [⚠️ **Recompile materials**]
|
||
|
||
## v1.41.0
|
||
|
||
- backend: fix #6997 : picking can fail on Adreno [⚠️ **New Material Version**]
|
||
- backend: A partial workaround for PowerVR devices (#5118, b/190221124) [⚠️ **Recompile Materials**]
|
||
|
||
## v1.40.5
|
||
|
||
- backend: Disable timer queries on all Mali GPUs (fixes b/233754398)
|
||
- engine: Add a way to query the validity of most filament objects (see `Engine::isValid`)
|
||
- opengl: fix b/290388359 : possible crash when shutting down the engine
|
||
- engine: Improve precision of frame time measurement when using emulated TimerQueries
|
||
- backend: Improve frame pacing on Android and Vulkan.
|
||
- backend: workaround b/291140208 (gltf_viewer crashes on Nexus 6P)
|
||
- engine: support `setDepthFunc` for `MaterialInstance`
|
||
- web: Added setDepthFunc()/getDepthFunc() to MaterialInstance
|
||
- android: Added setDepthFunc()/getDepthFunc() to MaterialInstance
|
||
|
||
## v1.40.4
|
||
|
||
- gltfio: fix crash when compute morph target without material
|
||
- matc: fix buggy `variant-filter` flag
|
||
- web: Added missing setMat3Parameter()/setMat4Parameter() to MaterialInstance
|
||
- opengl: fix b/290670707 : crash when using the blob cache
|
||
- engine: fix a crash with `Material::compile()` when a callback is specified
|
||
|
||
## v1.40.3
|
||
|
||
## v1.40.2
|
||
|
||
- rendering: dynamic resolution would not work with a translucent render target and quality > low
|
||
- Java/Kotlin: user callbacks were not invoked on successful texture upload
|
||
|
||
## v1.40.1
|
||
|
||
## v1.40.0
|
||
|
||
- matc: fix VSM high precision option on mobile [⚠️ **Recompile materials**]
|
||
- vulkan: support sRGB swap chain
|
||
- Add new `getMaxAutomaticInstances()` API on `Engine` to get max supported automatic instances.
|
||
- UiHelper: fix jank when a `TextureView` is resized (fixes b\282220665)
|
||
- backend: parallel shader compilation support. This breaks and improves the recent `Material::compile` API.
|
||
|
||
## v1.39.0
|
||
|
||
- matc: workaround a bug in spirv-tools causing vsm to fail [⚠️ **Recompile materials**]
|
||
|
||
## v1.38.0
|
||
|
||
- engine: a new feature to set a transform on the global-scale fog [⚠️ **Recompile materials**]
|
||
- engine: large-scale fog can now be opted-out on a per-renderable basis
|
||
- engine: improve froxelizer resource efficiency [⚠️ **Recompile materials**]
|
||
- matc: better accounting and validation of used samplers in user materials
|
||
- engine: add support for sampling fog color from a custom texture [⚠️ **Recompile materials**]
|
||
- vulkan: introduce new custom swapchain API
|
||
- vulkan: new context sharing API
|
||
|
||
## v1.37.0
|
||
|
||
- backend: added `Platform` blob cache APIs, typically used to cache programs [⚠️ **Recompile materials**]
|
||
|
||
## v1.36.0
|
||
|
||
- engine: a local transform can now be supplied for each GPU instance [⚠️ **Recompile materials**]
|
||
- everything: Add limited support for OpenGL ES 2.0 devices. [⚠️ **Recompile Materials**]
|
||
- platform: New virtual on `OpenGLPlatform` to preserve ancillary buffers
|
||
|
||
## v1.35.0
|
||
|
||
- materials: Materials can now access up to 4 global `vec4` visible by all materials [⚠️ **Recompile Materials**]
|
||
|
||
## v1.34.0
|
||
|
||
- materials: picking is done in float (prepare for ES2) [⚠️ **New Material Version**]
|
||
- materials: postLightingBlending is now applied before the fog [⚠️ **Recompile materials**]
|
||
- vulkan: fix adreno optimized material artifacts [⚠️ **Recompile Materials**]
|
||
|
||
## v1.33.0
|
||
|
||
- materials: prepare ES2 support [⚠️ **New Material Version**]
|
||
|
||
## v1.32.4
|
||
|
||
- engine: Add support for _constant parameters_, which are constants that can be specialized after material compilation.
|
||
- materials: improved size reduction of OpenGL/Metal shaders by ~65% when compiling materials with
|
||
size optimizations (`matc -S`) [⚠️ **Recompile Materials**]
|
||
- engine: fix potential crash on Metal devices with A8X GPU (iPad Air 2) [⚠️ **Recompile Materials**]
|
||
- opengl: support the external image on macOS
|
||
|
||
## v1.32.3
|
||
|
||
- fog: added an option to disable the fog after a certain distance [⚠️ **Recompile Materials**].
|
||
- fog: fog color now takes exposure and IBL intensity into account [⚠️ **Recompile Materials**].
|
||
- materials: implement cascades debugging as a post-process [⚠️ **Recompile Materials**].
|
||
- materials: use 9 digits or less for floats [⚠️ **Recompile Materials**].
|
||
- gltfio: fix skinning when objects are far from the origin
|
||
- materials: remove 4 unneeded variants from `unlit` materials [⚠️ **Recompile Materials**].
|
||
|
||
## v1.32.2
|
||
|
||
- lighting: the sun disc was computed in low/medium quality instead of high quality. This will
|
||
provide performance improvements to mobile devices [⚠️ **Recompile Materials**]
|
||
|
||
## v1.32.1
|
||
|
||
## v1.32.0
|
||
|
||
- fog: fixed fog height falloff and computation precision on mobile [⚠️ **Recompile Materials**]
|
||
- materials: new alphaToCoverage property can be used to control alpha to coverage behavior
|
||
- materials: added `getUserWorldFromWorldMatrix()` and `getUserWorldPosition()` to retrieve the
|
||
API-level (user) world position in materials. Deprecated `getWorldOffset()`. [⚠️ **Recompile
|
||
Materials**]
|
||
- engine: fix precision issue with `shading_view` in large scenes
|
||
- vulkan: readPixels is now async (#6560)
|
||
|
||
## v1.31.7
|
||
|
||
## v1.31.6
|
||
|
||
- engine: the default render channel is now 2 instead of 0
|
||
- gltfio: Fix crash when a MIME type has no texture provider
|
||
|
||
## v1.31.5
|
||
|
||
- gltfio: fix potential early freeing of data provided with `ResourceLoader::addResourceData`.
|
||
|
||
## v1.31.4
|
||
|
||
- engine: fix broken picking [⚠️ **Recompile Materials to get the fix**]
|
||
- engine: added support for sRGB swapchains. See `SwapChain.h`
|
||
- bluegl: support Windows32
|
||
|
||
## v1.31.3
|
||
|
||
- vulkan: fix memory leak in readPixels
|
||
- engine: added support for draw-commands channels (stronger ordering of commands/renderables)
|
||
|
||
## v1.31.2
|
||
|
||
## v1.31.1
|
||
|
||
- gltfio: expose joint inverse bind matrices via method on FilamentInstance
|
||
- filamesh: add error when uv coords size does not match num of vertices. (#6351)
|
||
|
||
## v1.31.0
|
||
|
||
- java: fix confusing typo in Camera documentation
|
||
- engine: the output color space can be set on `ColorGrading`. This API currently has limitations,
|
||
please refer to the documentation for more details
|
||
- Support for RGTC and BPTC texture compression
|
||
- engine: fix TransformManager high precision mode when using transactions
|
||
- web: added TypeScript definition for `Engine.destroy`
|
||
- materials: `getNormalizedViewportCoord()` now returns the logical (i.e. user) viewport
|
||
normalized position and keeps z reversed [⚠️ **Recompile Materials**]
|
||
- backend: workaround Adreno shader compiler bug (#6355) [⚠️ **Recompile Materials**]
|
||
- geometry: change computing tangent basis from normal vector to use Frisvad's method
|
||
|
||
## v1.30.0
|
||
|
||
- engine: optimize per-shadow UBO [⚠️ **Recompile Materials**]
|
||
- engine: fix potential memory corruption with larger scenes
|
||
- engine: VSM's MSAA setting is now per-view instead of per-light [⚠️ **API Change**]
|
||
|
||
## v1.29.0
|
||
|
||
- gltfio: calculate primitive's AABB correctly.
|
||
- gltfio: recompute bounding boxes with morph targets
|
||
- engine: add missing getters on `MaterialInstance`
|
||
- WebGL: add missing `ColorGrading` JS bindings
|
||
- engine: improvements/cleanup of Shadow mapping code [⚠️ **Recompile Materials**]
|
||
|
||
## v1.28.3
|
||
|
||
|
||
- backend: add support for GGP platform
|
||
- engine: primitives with `CullingMode::FRONT_AND_BACK` are now skipped.
|
||
|
||
## v1.28.2
|
||
|
||
- gltfio: support EXT_meshopt_compression
|
||
- release packaging: fixed location of default IBL file
|
||
|
||
## v1.28.1
|
||
|
||
- gltfio: fix reloading crash in ubershader mode
|
||
- Vulkan: improve performance in the readPixels path
|
||
- engine: raise the spot shadows limit to 64, from 14.
|
||
- engine: add experimental support for point light shadows.
|
||
- gltfio: fix ubershader issues with assignment of dummy textures
|
||
- gltfio: material instances and variants are now accessed via `FilamentInstance` [⚠️ **API Change**]
|
||
- gltfio: the animator can now only be accessed via `FilamentInstance` [⚠️ **API Change**]
|
||
- engine: fix "stable" shadows and make the default cascade splits logarithmic.
|
||
- engine: Add new quality options to EVSM shadows + rendering fixes
|
||
|
||
## v1.28.0
|
||
|
||
- engine: LiSPSM is now a user settable option
|
||
- engine: get the morph target buffer to the given primitive
|
||
- Java: Fix TransformManager.getChildren()
|
||
- Metal: newer devices are no longer limited to 16 samplers per Material.
|
||
- gltfio: fix interpretation of occlusion strength
|
||
- engine: minsdk is now 21 instead of 19. This allows the use of OpenGL ES 3.1
|
||
- Vulkan: fix black screen regression
|
||
|
||
## v1.27.2
|
||
|
||
- gltfio: punctual lights are now duplicated when adding new asset instances
|
||
- gltfio: FilamentInstance getAsset method now returns an immutable asset
|
||
- gltfio: allow zero-instance assets
|
||
- gltfio: fix regression with meshes that have no material
|
||
- gltfio: fix regression with recomputeBoundingBoxes()
|
||
- filamesh / matinfo: fix minor ASAN issues
|
||
- engine: Added `Engine::resetBackendState()`, available only in WebGL builds
|
||
|
||
## v1.27.1
|
||
|
||
- Java: add methods for TransformManager.getChildCount(), TransformManager.getChildren() and Scene.hasEntity()
|
||
- engine: Fix stencil buffer writes with OpenGL backend.
|
||
- gltfio: add new virtual method to MaterialProvider that all plugins must implement
|
||
- gltfio: add an assert for inconsistent sRGB flags among usages of a particular texture
|
||
- engine: improve scissor documentation
|
||
- backend: scissor is no longer clipped to the viewport (done on filament side)
|
||
- samples: add debug overdraw visualization to gltf_viewer
|
||
|
||
## v1.27.0
|
||
|
||
- WebGL: reduce max instance count to work around Chrome issues [⚠️ **Recompile Materials**]
|
||
- engine: rework material/shader sampler binding code [⚠️ **Recompile Materials**]
|
||
- gltfio: move the API for `recomputeBoundingBoxes` [⚠️ **API Change**]
|
||
- engine: add support for specialization constants [⚠️ **Recompile Materials**]
|
||
- gltfio: fix spotlight regression
|
||
- gltfio: clear the MaterialInstance cache when creating new instances
|
||
|
||
## v1.26.0
|
||
|
||
- engine: new feature level APIs, see `Engine::getSupportedFeatureLevel()`
|
||
- engine: add new stencil API to `View` and stencil state APIs to `MaterialInstance` [**NEW API**].
|
||
- engine: Fix guard bands and TAA with `vertexDomain:Device` [⚠️ **Recompile Materials**]
|
||
- engine: `clipSpaceTransform` is now only available with `vertexDomain:Device` [⚠️ **API Change**]
|
||
- gltfio: add unified `AssetLoader::createAsset()` method [⚠️ **API Change**]
|
||
- gltfio: all assets are now "instanced" [⚠️ **API Change**]
|
||
|
||
## v1.25.6
|
||
|
||
- engine: Add `CONFIG_MINSPEC_UBO_SIZE` as a nicer way to allow exceeding the ES3.0 minspec.
|
||
- gltfio: minor efficiency improvement for Android and WebGL builds.
|
||
- gltfio: add support for concurrent texture downloading and decoding.
|
||
|
||
## v1.25.5
|
||
|
||
- WebGL: upgraded the JS bindings to work with emsdk 3.1.15
|
||
- WebGL: added missing IBL builder to TypeScript annotations
|
||
- engine: Fix incorrect precision restoration when computing accurate world translations
|
||
- engine: make `MaterialInstance` public API friendly to `std::string_view` parameters
|
||
- gltfio: add 'detach' methods to allow ownership transfer of entities and components
|
||
|
||
## v1.25.4
|
||
|
||
- backend: streamline texture upload APIs [⚠️ **API Change**]
|
||
|
||
## v1.25.3
|
||
|
||
- engine: Fix Adreno gpu crash introduced by gpu morph target change
|
||
- engine: Add optional memory configuration parameters to Engine initialization
|
||
|
||
## v1.25.2
|
||
|
||
- engine: `Camera::getNear()` and `Camera::getCullingFar()` now return `doubles`
|
||
- Metal: implement scissor support.
|
||
- engine: `Renderer::getUserTime()` now returns seconds as documented (#5722) [⚠️ **API Fix**]
|
||
|
||
## v1.25.1
|
||
|
||
- engine: add support for automatic instancing. Must be enabled with `Engine::setAutomaticInstancingEnabled(bool)`
|
||
|
||
## v1.25.0
|
||
|
||
- Vulkan: smol-v blobs are now 8-byte aligned within the filamat archive. [⚠️ **Recompile Materials**]
|
||
- backend: added support for EGL on linux (headless)
|
||
- uberz tool: add --append and --template arguments.
|
||
- matc tool: add --template argument.
|
||
|
||
## v1.24.0
|
||
|
||
- ImGuiHelper: add support for Y flip.
|
||
- Metal: ignore `MTLTexture` formatting when importing external textures.
|
||
- materials: add a new `instanced` material parameter that is now mandatory in order to call `getInstanceIndex()`
|
||
- gltfio: UbershaderProvider now takes the ubershader archive in its constructor [⚠️ **API Change**]
|
||
- gltfio: Fix morphing with sparse accessors.
|
||
- gltfio: Fix models that use signed integers for morphing.
|
||
- engine: Documentation improvements regarding SkinningBuffer and fix an off-by-one assert when setting a SkinningBuffer.
|
||
- picking is now exposed to JavaScript
|
||
- gltf_viewer: Exercise picking functionality.
|
||
- OpenGL: add WebGL support for ReadPixels
|
||
- Vulkan: add assert and error message for OOM (debug builds)
|
||
- Vulkan: fix crash with picking and 2-component ReadPixels.
|
||
- backend: workaround broken GLES timer query on some Mali-Gxx old drivers
|
||
- backend: revert c049a1 & reenable b2cdf9 ("don't issue a flush systematically after framegraph's execute")
|
||
- gltfio: namespace now lives under Filament [⚠️ **API Change**]
|
||
- gltfio: UbershaderLoader renamed to UbershaderProvider [⚠️ **API Change**]
|
||
- gltfio: MaterialGenerator renamed to JitShaderProvider [⚠️ **API Change**]
|
||
|
||
## v1.23.2
|
||
|
||
- gltfio: Fix morphing for un-packed accessors.
|
||
- gltfio: Ubershaders are now packaged into flexible archives.
|
||
- gltfio: Remove poorly maintained lite flavor.
|
||
- engine: Disable user scissor while rendering the Shadow Maps.
|
||
- engine: Merge identical backend `RenderPrimitives` together.
|
||
- engine: Improve `ResourceAllocator` performance a bit by reserving 128 cache entries.
|
||
- utils: Remove `std::hash<T>` definitions for `libutils` types. Use `T::Hasher` explicitly instead. [⚠️ **API Change**]
|
||
- backend: Fix WGL context attributes.
|
||
- Metal: Fix potential invalid shaders when using gltfio in Ubershader mode. [⚠️ **Recompile Materials to get the fix**]
|
||
|
||
## v1.23.1
|
||
|
||
- gltfio: support skinning with bones that do not belong to any scene.
|
||
- gltfio: add `attachSkin` / `detachSkin` method to FilamentAsset.
|
||
- gltfio: ubershader mode: set sheen to `OPAQUE`.
|
||
- Metal: fix issues seen with dynamic resolution on M1 Macs.
|
||
- engine: add a "global" mode for render primitive's `blendOrder`.
|
||
- engine: remove `RenderManager::setGeometryAt(index, count)`. [⚠️ **API Change**]
|
||
- engine: fix overallocation by about 17MB.
|
||
- WebGL: Add JS bindings for Texture class methods.
|
||
|
||
## v1.23.0
|
||
|
||
- engine: Changed UBOs layout [⚠️ **Material breakage**].
|
||
- engine: Normals on morphed models have been fixed (core Filament change).
|
||
- Java: View has several minor changes due to generated code, such as field ordering.
|
||
- gltfio: Fix crash when reloading glTF assets.
|
||
- gltfio: introduce cross-fade animation API [**NEW API**].
|
||
|
||
## v1.22.2
|
||
|
||
- Java: Minor API change: rename `ssctStartTraceDistance` to `ssctShadowDistance`. [⚠️ **API Change**]
|
||
- Java: Minor API change: rename `blendingMode` to `blendMode`. [⚠️ **API Change**]
|
||
- engine: Fix some memory leaks.
|
||
|
||
## v1.22.1
|
||
|
||
- Metal: Shaders now use `half` floating-point arithmetic when possible for improved performance. [⚠️ **Recompile Materials**]
|
||
- engine: add support for presentation time in `Renderer`
|
||
- engine: added guard bands support for screen-space effects
|
||
- gltfio: Add multi-scene support.
|
||
- gltfio: Various glTF-related cleanup and enhancements.
|
||
- gltfio: Add support for KHR_texture_basisu.
|
||
|
||
## v1.22.0
|
||
|
||
- engine: Changed UBOs layout [⚠️ **Material breakage**].
|
||
- engine: Improve effects relying on mipmapping
|
||
- engine: Fix assert seen with VSM shadows.
|
||
- WebGL: Fix `isTextureFormatSupported` for ETC2 formats.
|
||
|
||
## v1.21.3
|
||
|
||
- Java: Renamed the `KTXLoader` Kotlin class to `KTX1Loader`. [⚠️ **API Change**].
|
||
- libs: Added `Ktx2Reader` and `BasisEncoder` to support Basis-encoded KTX2 files.
|
||
- engine: Remove deprecated `Stream` APIs, see `Texture::import()` for an alternative [⚠️ **API Change**].
|
||
- tools: Removed KTX1 compression support from mipgen. [⚠️ **API Change**].
|
||
- tools: Added support for KTX2 to mipgen.
|
||
- gltfio: Added `resetBoneMatrices()` method.
|
||
- gltfio: Introduced `TextureProvider` interface. [⚠️ **API Change**].
|
||
- gltfio: Fix progress indicator when error occurs.
|
||
- samples: Desktop and Web Suzanne samples now use KTX2 instead of KTX1.
|
||
- samples: Fix regression with sample-gltf-viewer and zip files.
|
||
|
||
## v1.21.2
|
||
|
||
- Java: Add Java binding to get skins in `FilamentAsset`.
|
||
- libs: Add libs/ktxreader [⚠️ **API Change**].
|
||
- mipgen: fixups / clarification regarding sRGB.
|
||
- WebGL: fix intermittent 'detached ArrayBuffer' errors.
|
||
|
||
## v1.21.1
|
||
|
||
- engine: Allow both screen-space refraction and screen-space reflections on the same object [⚠️ **Material breakage**].
|
||
- engine: Optimizations for screen-space reflections.
|
||
- engine: Remove `Viewport::scale()` [⚠️ **API Change**].
|
||
- engine: Fix 12x overallocation of memory in `MorphTargetBuffer`.
|
||
- Metal: Fix validation error when reading from default `SwapChain`.
|
||
|
||
## v1.21.0
|
||
|
||
- engine: OpenGL performance improvements with some drivers.
|
||
- engine: Fix incorrect shadows with some custom projection matrices.
|
||
- engine: Fix low frame rates seen with a lot of morph targets.
|
||
- gltfio: Add support for KHR_materials_variants.
|
||
- gltfio: Add support for KHR_materials_emissive_strength.
|
||
- gltfio: Java now exposes morph target names as an array for consistency [⚠️ **API Change**].
|
||
|
||
## v1.20.5
|
||
|
||
- engine: New behavior for MASKED to work with translucent views. [⚠️ **Recompile Materials** to get the fix]
|
||
- engine: Fix screen-space reflections when post-processing and MSAA are off.
|
||
- engine: Update MAX_MORPH_TARGETS constant to 256.
|
||
- engine: Fix point light lighting with ortho projection.
|
||
- libs: BlueGL symbols are now prefixed with `bluegl` on all platforms.
|
||
- gltfio: Add skinning getters to `FilamentAsset`.
|
||
|
||
## v1.20.4
|
||
|
||
- gltfio: Java clients must now destroy the MaterialProvider [⚠️ **API Change**].
|
||
- gltfio: Fix, bone pose not applied if glTF model doesn't have animations.
|
||
- libs: Added `math::quat::fromDirectedRotation` [**NEW API**].
|
||
- WebGL: Restore GL state when frame ends.
|
||
|
||
## v1.20.3
|
||
|
||
- Java: Fix URI bug in Android Viewer sample when dropping some zips.
|
||
- Vulkan: Fix "uninitialized texture" warnings from the Vulkan backend.
|
||
|
||
## v1.20.2
|
||
|
||
- engine: Binary size optimizations.
|
||
- engine: Fix, Mat4 from Quaternion was transposed.
|
||
- Vulkan: Internal bug fixes and robustness improvements.
|
||
- Vulkan: Reduced log spam.
|
||
|
||
## v1.20.1
|
||
|
||
- engine: Binary size improvements.
|
||
- engine: Add basic support for instanced renderables [**NEW API**].
|
||
- engine: Fix, first imaged passed to `Stream::SetAcquiredImage` is ignored and leaked.
|
||
- Vulkan: Robustness improvements.
|
||
- Java: Fix, lookAt z axis negated.
|
||
- gltfio: Be graceful when model has > 4 weights per vert.
|
||
|
||
## v1.20.0
|
||
|
||
- engine: Support rough screen-space reflections [⚠️ **Material breakage**].
|
||
- engine: Added `Scene::forEach` API to iterate through a scene's entities.
|
||
- engine: Fix incorrect normals with skinned models.
|
||
- Vulkan: Fix segfault during shutdown.
|
||
- WebGL: Support web apps that have multiple `FilamentViewer`s.
|
||
- gltfio: Performance enhancements when loading models.
|
||
|
||
## v1.19.0
|
||
|
||
- engine: Support 256 morph targets.
|
||
- engine: Screen-space reflection improvements.
|
||
- engine: Morphing improvements and bug fixes.
|
||
- gltfio: Generate morphing normals when they are missing.
|
||
- gltfio: Support material extras.
|
||
- Java: Add bindings for new morphing API.
|
||
- Vulkan: Fix segfault on macOS.
|
||
|
||
## v1.18.0
|
||
|
||
- engine: Add support separate samplers in fragment and vertex shaders [⚠️ **Material breakage**].
|
||
- engine: Support legacy morphing mode with vertex attributes.
|
||
- engine: Allow more flexible quality settings for the ColorGrading LUT.
|
||
- engine: Improve screen-space reflections quality and allow reflections and refractions together.
|
||
- Vulkan: Bug fixes and improvements.
|
||
|
||
## v1.17.0
|
||
|
||
- engine: Add experimental glossy screen-space reflections.
|
||
- engine: Add support for GPU morphing and 128 morph targets.
|
||
- engine: Fix crash with non-shadow receiving renderables and VSM.
|
||
- engine: Bring back the 3x3 filter for PCF shadows.
|
||
- engine: Correct AABB calculation for skinned glTF models.
|
||
|
||
## v1.16.1
|
||
|
||
- engine: Added line/triangle strip support.
|
||
|
||
## v1.16.0
|
||
|
||
- engine: Fixes skinning calculations (#4887) [⚠️ **Material breakage**].
|
||
- engine: Add support for the glTF extension KHR_materials_emissive_strength.
|
||
- engine: Improvements and fixes to skinning calculations.
|
||
- engine: Fix debug checks for compressed textures.
|
||
- Metal: Fix `readPixels` when dimensions are greater than the render target's.
|
||
|
||
## v1.15.2
|
||
|
||
- engine: Add support for PCSS (Percentage Closer Soft Shadows).
|
||
- engine: Fix spotlight shadow bias.
|
||
- samples: Avoid leaking IBLs in Android sample-gltf-viewer.
|
||
- libs: Fix `libibl` on mobile.
|
||
|
||
## v1.15.1
|
||
|
||
- engine: add support for DPCF (PCF shadows with contact hardening).
|
||
- engine: add support for Wayland and Vulkan.
|
||
- engine: Fade lights out when close to light far plane.
|
||
- Java: Add missing `Engine#destroySkinningBuffer` method.
|
||
|
||
## v1.15.0
|
||
|
||
- engine: Fix spotlights normal bias calculation [⚠️ **Material breakage**].
|
||
- libimage: Fix loading spherical harmonics on certain locals.
|
||
|
||
## v1.14.2
|
||
|
||
- Metal: Fix validation error when rendering to `RenderTarget` without depth attachment.
|
||
- engine: Fix rendering glitch with zero-scale bone transforms.
|
||
|
||
## v1.14.1
|
||
|
||
- engine: Improvements to shadowing.
|
||
|
||
## v1.14.0
|
||
|
||
- engine: Internal materials can use structures as parameters [⚠️ **Material breakage**].
|
||
- engine: `readPixels` on a `SwapChain` must be called within `beginFrame` / `endFrame` [⚠️ **API
|
||
Change**].
|
||
- engine: Fix normal bias and improve spotlight quality.
|
||
- Java: Fix shadow biases.
|
||
|
||
## v1.13.0
|
||
|
||
- Android: Gradle configuration caching is now enabled.
|
||
- Android: Filament's Gradle properties have all been renamed to `com.google.android.filament.xxx`
|
||
where `xxx` is the property name. See `android/build.gradle` for a complete list [⚠️]
|
||
- Android: The Gradle property `filament_tools_dir` (now called
|
||
`com.google.android.filament.tools-dir`) does not have a default value anymore. Please specify one
|
||
in your `gradle.properties` if you reuse the Gradle plugin in your projects [⚠️]
|
||
- engine: Fix spotlights direction and falloff [⚠️ **Material breakage**].
|
||
- engine: Improvements to VSM and spotlight shadows.
|
||
|
||
## v1.12.11
|
||
|
||
- Metal: Color grading performance improvement on M1 devices.
|
||
- samples: Fix glitchy animation seen in gltf-viewer iOS sample.
|
||
|
||
## v1.12.10
|
||
|
||
- engine: rewrite dynamic resolution scaling controller for better accuracy and less jittering.
|
||
- Java: fix missing ASTC texture enum.
|
||
- tools: Fix normal map issues in mipgen.
|
||
- WebGL: expose some `SurfaceOrientation` functions.
|
||
|
||
## v1.12.9
|
||
|
||
- engine: New API: `MultiSampleAntiAliasingOptions` and HDR-aware MSAA resolve. When `customResolve`
|
||
is enabled, improves anti-aliasing quality [**NEW API**].
|
||
- engine: Fixes and improvements for FSR.
|
||
- engine: All APIs that take a callback as argument now also take a `CallbackHandler*`, a new
|
||
interface that provides more flexibility around callback dispatch [**NEW API**].
|
||
- Android: Fix JNI bindings for `DepthOfFieldOptions`.
|
||
- Android: workarounds for Adreno-specific fraembuffer issue.
|
||
- JavaScript: updates to JS bindings.
|
||
|
||
## v1.12.8
|
||
|
||
- engine: Added picking API to `View` [⚠️ **Materials need to be rebuilt to access this new feature**].
|
||
- engine: A new `Engine::pumpMessageQueues()` method can be used to trigger all pending user
|
||
callbacks right away [**NEW API**].
|
||
- engine: new inline helpers to more easily use lambdas, functors and method callbacks with
|
||
`{Pixel}BufferDescriptor`.
|
||
- Vulkan: fix vertical offset for `readPixels`.
|
||
- Vulkan: various internal improvements.
|
||
- Metal: support integer formats with `readPixels`.
|
||
|
||
## v1.12.7
|
||
|
||
- engine: Fix, apply emissive after shadowing.
|
||
|
||
## v1.12.6
|
||
|
||
- engine: Added concept of lod bias to materials.
|
||
[⚠️ **Materials need to be rebuilt to access this new feature**].
|
||
- engine: Fix, BGRA ordering respected for external images with OpenGL on iOS.
|
||
- engine: Use more sensible defaults for spot light inner outer cone angles.
|
||
- engine: Fix potential race condition that caused stalls in `endFrame`.
|
||
- gltfio: Improved handling of transparent materials.
|
||
- Metal: Fix potential crash on earlier versions of iOS (<= 13.0).
|
||
- Android: Fix `filament-utils-android` 'lite' flavor.
|
||
- Java: Fix potential crash with `IBLPrefilter`.
|
||
|
||
## v1.12.5
|
||
|
||
- engine: work around a job scheduling issue in `endFrame` that caused stuttering on some Android
|
||
devices.
|
||
|
||
## v1.12.4
|
||
|
||
- engine: New night adaptation API on `ColorGrading`. This API can be used to create an effect that
|
||
that simulates color and brightness shifts in human vision in low-light conditions.
|
||
- engine: improved performance of AMD FidelityFX FSR1 by 4.6x, it now runs in about 2ms in 4K.
|
||
- engine: Dynamic resolution quality `MEDIUM`, `HIGH` and `ULTRA` now all use AMD FidelityFX FSR1.
|
||
- engine: Fix crash when duplicating material instances.
|
||
- gltfio: generate tangents if requested by the material.
|
||
|
||
## v1.12.3
|
||
|
||
- engine: Support AMD FidelityFX Super Resolution for dynamic resolution scaling
|
||
|
||
## v1.12.2
|
||
|
||
- engine: New API on `ColorGrading` to enable or disable gamut mapping at will [**New API**].
|
||
- engine: Fix typo causing ShadowOptions::shadowFar to not work properly.
|
||
- engine: Fix, CSM glitch when using shadowMultiplier materials.
|
||
- engine: Improve precision when computing camera projection.
|
||
- engine: Increase the number of supported spot shadows to 14 (from 6).
|
||
- Metal: Add texture swizzling support for external textures.
|
||
|
||
## v1.12.1
|
||
|
||
- engine: `double` precision translation support in TransformManager. Disabled by default.
|
||
Augment model (and view) matrix on `Camera` to accept double precision matrices. When enabled,
|
||
double precision translations allow filament to handle a very large world space [**New API**].
|
||
- engine: Fix, Views with custom render targets are now blendable.
|
||
|
||
## v1.12.0
|
||
|
||
- engine: Option to automatically compute bent normals from SSAO & apply to specular AO
|
||
[⚠️ **Material breakage**].
|
||
- engine: New APIs: Light channels. Geometry and lights now have a channel associated to them, at
|
||
least one channel must match for lighting to occur [⚠️ **Material breakage**].
|
||
- engine: Fix potential GPU crash with punctual lights near the far clipping plane.
|
||
- materials: The `inverseTonemap` API is now an exact inverse of the Filmic tonemapper.
|
||
- Metal: Better support for texture formats on M1 Macs.
|
||
|
||
## v1.11.2
|
||
|
||
- engine: New API: `ColorGrading::Builder::toneMapper(const ToneMapper*)`.
|
||
- engine: New tone mapper: `GenericToneMapper`, a configurable tone mapper.
|
||
- engine: `ColorGrading::Builder::toneMapping(ColorGrading::ToneMapping)` is now deprecated.
|
||
- engine: Removed `REINHARD` tonemap operator[⚠️ **API Change**].
|
||
- engine: Improve s3tc_srgb detection on desktop.
|
||
- engine: Add bilateral threshold in SSAO options.
|
||
- gltfio: Fix AssetLoader leak, remove unwanted destructor.
|
||
- Metal/Vulkan: Fix uploading texture data with padding or offset.
|
||
- Metal: fix GPU crash seen with large amounts of geometry.
|
||
|
||
## v1.11.1
|
||
|
||
- engine: Luminance scaling can now be used with any tone mapping operator. It was previously tied
|
||
to the "EVILS" tone mapping operator.
|
||
- engine: Removed the "EVILS" tone mapping operator [⚠️ **API Change**].
|
||
- engine: Improvements to Skinning. A new `SkinningBuffer` API allows bone sharing between
|
||
renderables.
|
||
- engine: Improvements to internal memory allocation for Metal and Vulkan backends.
|
||
- engine: Default to OpenGL backend when Windows does not support Vulkan.
|
||
- samples: Add new sample app: image_viewer.
|
||
|
||
## v1.11.0
|
||
|
||
- engine: Added support for transparent shadows. Add `transparentShadow : true` in the material file.
|
||
- engine: honor user-defined precision in material files for non-samplers, rename `SamplerPrecision`
|
||
to `ParameterPrecicion`. [⚠️ **API Change**]
|
||
- engine: Work around Qualcomm issue with point lights.
|
||
- engine: Allow MSAA when post-processing is disabled.
|
||
- engine: enable up to 6 spot-light shadows.
|
||
- gltfio: Added support for `KHR_materials_volume`.
|
||
- gltfio: fix precision in KHR_texture_transform.
|
||
- java: Removed support for Java desktop targets (macOS, Linux, and Windows) [⚠️ **API Change**].
|
||
|
||
## v1.10.7
|
||
|
||
- engine: Spot-light position calculation moved to fragment shader.
|
||
- engine: Small shadow mapping fixes and improvements.
|
||
- gltfio: Add fast path for native material providers.
|
||
- gltfio: Allow Java / Kotlin clients to customize MaterialProvider.
|
||
- engine: Fix out of bounds access with `RenderTarget` java bindings.
|
||
- Metal: `TextureFormat::DEPTH24_STENCIL8` now maps to a 32 bit depth format on iOS.
|
||
|
||
## v1.10.6
|
||
|
||
- engine: Use exponential VSM and improve VSM user settings [⚠️ **Recompile Materials for VSM**].
|
||
- engine: Optional blurring of VSM shadowmaps.
|
||
- engine: Fix a crash when using lens flares.
|
||
- engine: Fix backend crashes when using an unsupported sample count.
|
||
- gltfio: Add new `getAsset`API to `FilamentInstance`.
|
||
- gltfio: Introduce support for extras strings.
|
||
- OpenGL: Increase OpenGL backend handle arena from 2 to 4 MiB.
|
||
- Vulkan: Fix Texture swizzle support.
|
||
|
||
## v1.10.5
|
||
|
||
- android: AAR libraries now properly include their ProGuard rules.
|
||
- engine: User materials can now provide custom lighting/surface shading, please consult
|
||
the [materials documentation](https://google.github.io/filament/Materials.html) for details.
|
||
- engine: `Backend::DEFAULT` now selects the most appropriate backend for the platform, rather than
|
||
always `OPENGL`. On Android the default is `OPENGL`, on Apple platforms the default is `METAL` and
|
||
on all other platforms that default is `VULKAN`.
|
||
- engine: Fix a potential memory corruption when using more than 4 render targets.
|
||
- engine: Fix a possible crash when bloom is enabled.
|
||
- engine: Fix and refactor support for S3TC + SRGB with OpenGL.
|
||
- engine: Fix automatic clearing of rendertargets.
|
||
- engine: Fix imported render target discard and clear flags.
|
||
- engine: Fix opaque blit with imported render targets.
|
||
|
||
## v1.10.4
|
||
|
||
- engine: improvements to internal job system.
|
||
- Vulkan: performance improvements on Mali.
|
||
- gltfio: improvements to load time for large models.
|
||
- WebGL: remove bogus stride argument, fix `BindingType` TypeScript definition.
|
||
|
||
## v1.10.3
|
||
|
||
- android: use `debug.filament.backend` system property to select the desired backend.
|
||
- engine: fix `LightManager::getFalloff`.
|
||
- gltfio: fix crash with non-triangles.
|
||
- macOS: fix main thread checker warnings with OpenGL.
|
||
- vulkan: fix crash on Windows machines with NVIDIA GPUs.
|
||
|
||
## v1.10.2
|
||
|
||
- Vulkan: validation and diagnostic improvements
|
||
- engine: improvements for scenes with many renderables.
|
||
- gltfio: added support for `KHR_materials_ior`.
|
||
- java: Add bindings for `IBLPrefilterContext`.
|
||
- java: add `KTXLoader.getSphericalHarmonics` JNI binding
|
||
- libimage: fix, respect sRGB option for compressed formats.
|
||
- sample-gltf-viewer: fix lifetime cycle for RemoteServer.
|
||
|
||
## v1.10.1
|
||
|
||
- engine: Add `getPlatform` API to Engine.
|
||
- engine: Add a new cone angles API to `LightManager`.
|
||
- engine: Attachments of custom RendereTargets are not systematically discarded.
|
||
- engine: Fix a crash when using custom rendertargets.
|
||
- engine: New API to duplicate a `MaterialInstance`.
|
||
- filagui: fix support for custom images in ImGuiHelper.
|
||
- java: Add bindings for HDRLoader.
|
||
|
||
## v1.10.0
|
||
|
||
- engine: User materials can now use 9 samplers instead of 8 [⚠️ **Material breakage**].
|
||
- engine: Remove `populateTangentQuaternions` [⚠️ **API change**].
|
||
- engine: Deprecate `Stream::Builder::stream(intptr_t)` [⚠️ **API Change**].
|
||
- engine: Remove deprecated APIs: `Camera::setScaling`, `Engine::destroy(Camera*)`,
|
||
`Engine::createCamera`, `Renderer::beginFrame(SwapChain*, uint64_t,
|
||
backend::FrameScheduledCallback, void*)`, and `View::setShadowsEnabled` [⚠️ **API Change**].
|
||
- engine: Remove `focusDistance` from `View::BloomOptions` [⚠️ **API Change**].
|
||
- engine: Add a `FILAMENT_SUPPORTS_OPENGL` CMake option to enable/disable OpenGL support.
|
||
- Vulkan: fixes and improvements for large scenes.
|
||
- gltfio: fix morphing bugs uncovered by MorphStressTest.
|
||
- Java: add API for `Texture::Builder::import()`.
|
||
- WebGL: Fix a potential INVALID_OPERATION.
|
||
|
||
## v1.9.25
|
||
|
||
- NEW API: Screen-space lens flare effect.
|
||
- engine: Fix several memory leaks in the GL backend.
|
||
- Vulkan: General bug fixes and improvements.
|
||
- Vulkan: Fix some problems seen on Mali devices.
|
||
- ios: Fix VSM shadows not working.
|
||
- webgl: Fix black screen seen with some samples.
|
||
|
||
## v1.9.24
|
||
|
||
- engine: Fix memory leaks in OpenGL driver.
|
||
- engine: new experimental tone mapper, `EVILS` (name will most likely change).
|
||
- engine: Improvements to Vulkan backend.
|
||
- engine: Fix incorrect units documented for `LightManager.getIntensity`.
|
||
- engine: fix high quality upsampling for SSAO.
|
||
- engine: implement accurate normal reconstruction for SSAO.
|
||
- engine: improve LOW and HIGH quality levels for SSAO.
|
||
- libs: improvements to `libiblprefilter`.
|
||
- materials: New `quality` property.
|
||
- samples: Add new gltf-viewer iOS sample.
|
||
- samples: clear the background in lightbulb sample.
|
||
|
||
## v1.9.23
|
||
|
||
- Vulkan: various fixes.
|
||
- android: fix crash seen using VSM with MSAA on Adreno devices.
|
||
- engine: Add `Engine::getEntityManager()`.
|
||
- engine: Fix desktop crash seen with some GPU drivers.
|
||
- engine: improve importance sampling.
|
||
- gltfio: robustness improvements for Draco meshes.
|
||
- libs: Add new Transcoder API for C++ clients (part of `libgeometry`).
|
||
- libs: New `iblprefilter` library to compute IBL pre-integration on the GPU using filament.
|
||
- materials: Fix documentation for `getNormalizedViewportCoord`.
|
||
- samples: fix rendertarget sample crash on launch.
|
||
|
||
## v1.9.22
|
||
|
||
- NEW API: `Renderer::renderStandaloneView()` is a new method that can be used outside of
|
||
beginFrame/endFrame on Views that have a RenderTarget associated. This can be used as a
|
||
pseudo-compute API.
|
||
- Vulkan: bug fixes and improvements.
|
||
- engine: RenderTarget API can now use MRT.
|
||
- sample-gltf-viewer: improvements for reading zip files.
|
||
- sample-gltf-viewer: enable contact-shadows functionality in mobile gltf-viewer.
|
||
- windows: fix build error in filament_framegraph_test.
|
||
|
||
## v1.9.21
|
||
|
||
- JavaScript: add missing TextureSampler bindings.
|
||
- Metal: Fix texture swizzling crash with older Nvidia GPUs.
|
||
- Vulkan: fix image layout validation error on Android.
|
||
- android: fix MSAA w/ multisampled_render_to_texture on Mali.
|
||
- engine: better anisotropic filtering with various drivers.
|
||
- gltfio: Use BufferObject API, simplify MorphHelper.
|
||
- gltfio: honor stride in normalizeSkinningWeights.
|
||
- samples: Add web component demo.
|
||
|
||
## v1.9.20
|
||
|
||
- Android: Fix VSM.
|
||
- engine: Introduce BufferObject API.
|
||
- engine: Add new isTextureSwizzleSupported API on Texture.
|
||
- engine: Add support to Metal and Vulkan backends for texture swizzling.
|
||
- engine: Add new DoF settings (native/half res, gather kernel ring counts, CoC radius clamp).
|
||
- engine: DoF quality and performance improvements.
|
||
- engine: Fix high-quality upsampling issue with SSAO.
|
||
- Java: Expose `TransformManager.getParent(int)`.
|
||
- samples: Add Metal and Vulkan backend support to Suzanne sample.
|
||
- WebGL: expose fitIntoUnitCube to JS.
|
||
- WebGL: support for multiple `<canvas>` elements.
|
||
|
||
## v1.9.19
|
||
|
||
- engine: Fix Metal bug when setGeometryAt is called multiple times.
|
||
- engine: Improvements to DoF.
|
||
- engine: Fix RenderTarget NPE when depth is not present.
|
||
- engine: Improvements to Camera APIs. Move focus distance from DofOptions to Camera.
|
||
- engine: VSM shadows now support `shadowMultiplier`.
|
||
- java: Expose several MaterialInstance APIs (setColorWrite, setDepthWrite, setDepthCulling) that
|
||
should have been public.
|
||
- java: fix bug with Texture::setImage buffer size calculation.
|
||
|
||
## v1.9.18
|
||
|
||
- engine: Fix a DoF bug that caused black dots around the fast tiles.
|
||
- engine: Minor DoF optimizations.
|
||
- engine: Fix blanking windows not being drawn into on macOS.
|
||
- gltfio: Add support for data:// in image URI's.
|
||
- gltfio: Add internal MorphHelper, enable up to 255 targets.
|
||
- engine: Fix a hang in JobSystem.
|
||
- samples: Fix rendertarget sample app.
|
||
|
||
## v1.9.17
|
||
|
||
- engine: New shift parameter on `Camera` to translate the viewport and emulate a tilt/shift lens.
|
||
- engine: `Camera::setCustomProjection()` now allows to set a different projection for culling and rendering.
|
||
- engine: Fixed depth of field rendering with custom projection matrices.
|
||
- engine: Fix a rare indefinite hang.
|
||
- gltfio: `SimpleViewer` now exposes more rendering parameters, including `ColorGrading`.
|
||
- gltfio: Fix tangents when morphing is enabled.
|
||
- Metal/Vulkan: fix incorrect dominant light shadows rendering.
|
||
- Fixe some issues with imported rendertargets.
|
||
|
||
## v1.9.16
|
||
|
||
gltfio: Add ResourceLoader evict API.
|
||
gltfio: Fix ResourceLoader cache bug.
|
||
iOS: Disable exceptions to reduce binary size.
|
||
|
||
## v1.9.15
|
||
|
||
- filamat/matc: fix sporadic crash.
|
||
|
||
## v1.9.14
|
||
|
||
- Improve bloom/emissive with glTF files.
|
||
- Publicly expose Exposure API for gltfio.
|
||
|
||
## v1.9.13
|
||
|
||
- Android: fix "No implementation found" error.
|
||
- Android: fix compilation error in UbershaderLoader.
|
||
- engine: computeDataSize now returns correct value for USHORT_565.
|
||
- Vulkan: various internal improvements.
|
||
|
||
## v1.9.12
|
||
|
||
- engine: Fixed GL errors seen with MSAA on WebGL.
|
||
Warning: this can affect multisampling behavior on devices that do not support OpenGL ES 3.1
|
||
- materials: Added new `getVertexIndex()` API for vertex shaders.
|
||
- samples: RenderTarget demo now disables post-processing in offscreen view and creates depth attachment.
|
||
- gltfio: Fix, animation jolt when time delta is very small.
|
||
|
||
## v1.9.11
|
||
|
||
- Added support for Apple silicon Macs. build.sh can now be used to build on either Apple silicon or
|
||
Intel-based Macs. Pass the `-l` flag to build universal binaries.
|
||
- Added `sheenColor` and `sheenRoughness` properties to materials to create cloth/fabric.
|
||
- Materials generation using `libfilamat` is now multi-threaded.
|
||
- `MaterialBuilder::build()` now expects a reference to a `JobSystem` to multi-thread shaders
|
||
generation. A `JobSystem` can be obtained with `Engine::getJobSystem()` when using Filament,
|
||
or created directly otherwise. (⚠️ **API change**)
|
||
- Add planar reflection RenderTarget demo.
|
||
- Metal: honor inverseFrontFaces RasterState.
|
||
- Metal: Fix crash when switching between views with shadowing enabled.
|
||
- Metal: Fix crash when calling Texture::setImage() on SAMPLER_2D_ARRAY texture.
|
||
- gltfio: added support for `KHR_materials_sheen`.
|
||
- gltfio: shader optimizations are now disabled by default, unless opting in or using ubershaders.
|
||
- gltfio: Fix "_maskThreshold not found" error.
|
||
- gltfio on Java: fix potential memory leak in AssetLoader#destroy.
|
||
- gltfio: fix crash during async texture decode.
|
||
- gltfio: support animation in dynamically-added instances.
|
||
- gltfio: Improve robustness when decoding textures.
|
||
- gltfio: Fix animator crash for orphaned nodes.
|
||
- gltfio: fix tangents with morphing.
|
||
- gltf_viewer: fix very sporadic crash when exiting.
|
||
- gltf_viewer: fix crash when rapidly switching between glTF models.
|
||
- WebGL: Fix samples erroring on Windows with Chrome.
|
||
- WebGL: Support `highlight` for setBloomOptions in JavaScript.
|
||
- WebGL: Include TypeScript bindings in releases.
|
||
- engine: Fix, punctual lights get clipped at certain angles.
|
||
- engine: Fix memory leak when calling `View::setViewport` frequently.
|
||
- engine: Fix, materials not working on some Qualcomm devices.
|
||
- engine: Modulate emissive by alpha on blended objects.
|
||
- engine: Fix, RenderTarget cleared multiple times.
|
||
- Java: Fix JNI bindings for color grading.
|
||
- Android: reduced binary size.
|
||
|
||
## v1.9.10
|
||
|
||
- Introduce `libibl_lite` library.
|
||
- engine: Fix `EXC_BAD_INSTRUCTION` seen when using headless SwapChains on macOS with OpenGL.
|
||
- engine: Add new callback API to `SwapChain`.
|
||
- engine: Fix SwiftShader crash when using an IBL without a reflections texture.
|
||
- filamat: Shrink internal `Skybox` material size.
|
||
- filamat: improvements to generated material size.
|
||
- filamat: silence spirv-opt warnings in release builds.
|
||
- matc: Add fog variant filter.
|
||
- matc: Fix crash when building mobile materials.
|
||
- math: reduce template bloat for matrices.
|
||
|
||
## v1.9.9
|
||
|
||
- Vulkan: internal robustness improvements.
|
||
- Metal: Support CVPixelBuffer SwapChains.
|
||
- Metal: Support copyFrame.
|
||
- Fix clear behavior with RenderTarget API.
|
||
- Fix GetRefractionMode JNI binding.
|
||
- Additional fixes for Fence bug.
|
||
|
||
## v1.9.8
|
||
|
||
- Fix a few Fence-related bugs
|
||
- gltfio: add createInstance() to AssetLoader.
|
||
- gltfio: fix ASAN issue when consuming invalid animation.
|
||
- gltfio: do not segfault on invalid primitives.
|
||
- gltfio: add safety checks to getAnimator.
|
||
- gltfio: fix segfault when consuming invalid file.
|
||
- Vulkan: various internal refactoring and improvements
|
||
- mathio: add ostream operator for quaternions.
|
||
- Fix color grading not applied when dithering is off.
|
||
|
||
## v1.9.7
|
||
|
||
- Vulkan: improvements to the ReadPixels implementation.
|
||
- Vulkan: warn instead of panic for sampler overflow.
|
||
- Vulkan: fix leak with headless swap chain.
|
||
- PlatformVkLinux now supports all combos of XLIB and XCB.
|
||
- Fix TypeScript binding for TextureUsage.
|
||
|
||
## v1.9.6
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- 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
|
||
|
||
- `MASKED` mode now leaves destination alpha intact (useful for transparent targets).
|
||
- `MASKED` mode now benefit from smoothing in `unlit` materials.
|
||
- Small performance improvement to FXAA.
|
||
- Fixed `KHR_materials_transmission` to use the `FADE` blending mode.
|
||
- Fixed frame graph crash when more than 32 stages were required.
|
||
- Fixed several memory leaks in gltfio and the JavaScript bindings.
|
||
- Fixed several platform-specific Vulkan bugs and crashes.
|
||
- 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**).
|
||
- Switched to C++17.
|
||
- Variance Shadow Mapping (VSM) is now available as an alternative to PCF shadows (experimental).
|
||
- Reduced compiled material sizes by removing unnecessary variants.
|
||
- Many improvement and fixes in the Vulkan backend.
|
||
- Many improvement and fixes in the Metal backend.
|
||
- Fixed translucent views with custom render targets.
|
||
- Improved MSAA implementation compatibility on Android devices.
|
||
- 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.
|
||
|
||
## v1.8.1
|
||
|
||
- 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 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.
|
||
- Improved quality and performance of the depth of field effect.
|
||
- Fixed transform hierarchy memory corruption when a node is set to be parentless.
|
||
- Fixed crashed in some browsers and on some mobile devices caused by
|
||
Google-style line directives in shaders.
|
||
- Color grading now has a quality option which affects the size and bit depth of the 3D LUT.
|
||
- Fixed crash in the Metal backend when more than 16 samplers are bound.
|
||
- Added validation in `Texture::setImage()`.
|
||
- Fixed refraction/transmission roughness when specular anti-aliasing is enabled.
|
||
|
||
## v1.8.0
|
||
|
||
- Improved JavaScript API for SurfaceOrientation and Scene.
|
||
- Updated JavaScript API around Camera construction / destruction (⚠️ **API change**)
|
||
- Add missing JavaScript API for `View::setVisibleLayers()`.
|
||
- Fixed regression in JavaScript IcoSphere that caused tutorial to fail.
|
||
- 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.
|
||
- ModelViewer now allows resources to be fetched off the UI thread.
|
||
- Add support for DOF with Metal backend.
|
||
- 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.
|
||
- Tone mappping now uses the real ACES tone mapper, applied in the proper color space.
|
||
- Tone mapping is now applied via a LUT.
|
||
- `View::setToneMapping` is deprecated, use `View::setColorGrading` instead. (⚠️ **API change**)
|
||
- 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.
|
||
- Improved MSAA performance on mobile.
|
||
- Improved performance of the post-process pass when bloom is disabled on mobile.
|
||
- Added support for 3D textures.
|
||
- Fixed private API access on some versions of Android.
|
||
- Many improvements and bug fixes in Metal and Vulkan backends.
|
||
- Fixed bug in the Metal backend when SSR and MSAA were turned on.
|
||
- Fixed Metal issue with `BufferDescriptor` and `PixelBufferDescriptor`s not being called on
|
||
the application thread.
|
||
|
||
## v1.7.0
|
||
|
||
- MaterialInstances now have optional names.
|
||
- Improved Depth of Field effect: bokeh rotates with the aperture diameter, improved CoC calculation, feather blur radius.
|
||
- Introduced `getNormalizedViewportCoord` shader API.
|
||
- Added basic SwiftShader support.
|
||
- Fixed SwapChain resizing issues in Vulkan.
|
||
- Added debug option to track `Entities`.
|
||
- Fixed `Camera` entity leaks.
|
||
- Removed problematic `CreateEliminateDeadMembersPass`, which broke UBO layout.
|
||
- Added assert that the engine is not terminated in `flushAndWait()`.
|
||
- Added several fixes and improvements around objects lifetime management
|
||
- `gltfio`: AssetLoader now loads names for mesh-free nodes
|
||
- `gltfio`: Material names are now preserved in ubershader mode
|
||
- Fixed JNI objects allocation and memory corruption
|
||
- JNI constructors are now "package private" unless they take an Engine.
|
||
|
||
## v1.6.0
|
||
|
||
- gltfio: fixed incorrect cone angles with lights.
|
||
- Specular ambient occlusion now offers 3 modes: off, simple (default on desktop) and bent normals.
|
||
The latter is more accurate but more expensive and requires a bent normal to be specified in the
|
||
material. If selected and not bent normal is specified, Filament falls back to the simple mode.
|
||
- Specular ambient occlusion from bent normals now smoothly disappears as roughness goes from 0.3
|
||
to 0.1. Specular ambient occlusion can completely remove specular light which looks bad on glossy
|
||
metals. Use the simple specular occlusion mode for glossy metals instead.
|
||
- Refraction can now be set on `MaterialBuilder` from Java.
|
||
- Refraction mode and type can now be set by calling `MaterialBuilder::refractionMode()`.
|
||
and `MaterialBuilder::refractionType()` instad of `materialRefraction()` and
|
||
`materialRefractionType()` (️⚠️ **API change**).
|
||
- Fixed documentation confusion about focused spot vs spot lights.
|
||
- Fixed a race condition in the job system.
|
||
- Fixed support for 565 bitmaps on Android.
|
||
- Added support for timer queries in the Metal backend.
|
||
- Improved dynamic resolution implementation to be more accurate and target more platforms.
|
||
- `beginFrame()` now accepts a v-sync timestamp for accurate frame time measurement (used for
|
||
frame skipping and dynamic resolution). You can pass `0` to get the old behavior (⚠️ **API change**).
|
||
- Fixed several issues related to multi-view support: removed
|
||
`View::setClearColor()`, a similar functionality is now handled by `Renderer::setClearOptions()`
|
||
and `Skybox`, the later now can be set to a constant color (⚠️ **API breakage**).
|
||
- Fixed spot/point lights rendering bug depending on Viewport position.
|
||
- Textures can now be swizzled.
|
||
- The emissive property of materials is now expressed in nits and the alpha channel contains the
|
||
exposure weight (at 0.0 the exposure is not applied to the emissive component of a surface, at
|
||
1.0 the exposure is applied just like with any regular light) (⚠️ **API breakage**).
|
||
- Added new `intensityCandela` and `setIntensityCandela` API to `LightManager` for setting a punctual
|
||
light's intensity in candela.
|
||
- Fixed an issue where some `ShadowOptions` were not being respected when passed to
|
||
`LightManager::Builder`.
|
||
- Added a Depth of Field post-processing effect
|
||
|
||
## v1.5.2
|
||
|
||
- gltfio: fixed null pointer exception seen with some Android clients.
|
||
- Engine now exposes its JobSystem to C++ clients.
|
||
- Expose setCulling() in public RenderableManager API.
|
||
|
||
## v1.5.1
|
||
|
||
- Fixed "no texture bound" warning in WebGL.
|
||
- Fixed a clearing bug with imported render targets.
|
||
- Fixed the creation potentially invalid entities during shadow map initialization.
|
||
- Fixed Maven dependencies for the `filament-utils` library.
|
||
|
||
## v1.5.0
|
||
|
||
⚠️ This release breaks compiled materials, use matc to recompile.
|
||
|
||
- The Android support libraries (gltfio and filament-utils) now use dynamic linking.
|
||
- Removed depth-prepass related APIs. (⚠ API Change)
|
||
- gltfio: add asynchronous API to ResourceLoader.
|
||
- gltfio: generate normals for flat-shaded models that do not have normals.
|
||
- Material instances now allow dynamic depth testing and other rasterization state.
|
||
- Unlit materials now apply emissive in the same way as lit materials.
|
||
- Screen-space refraction is now supported.
|
||
- Support for HDR Bloom as a post-process effect.
|
||
- Alpha masked objects are now part of the SSAO pass.
|
||
- Added Java bindings for geometry::SurfaceOrientation.
|
||
- Fixed bug rendering transparent objects with Metal backend.
|
||
- Fixed crash on macOS Catalina when rendering with Metal backend.
|
||
- Fixed bug in Camera::setLensProjection() and added the aspect ratio parameter. (⚠ API Change)
|
||
- WebGL: Improved TypeScript annotations.
|
||
- WebGL: Simplified callback API for glTF. (⚠ API Change)
|
||
- gltfio: Removed deprecated "Bindings" API. (⚠ API Change)
|
||
- gltfio: Added support for Draco.
|
||
- gltfio: Reduced the size of the library.
|
||
- Improved performance of SSAO.
|
||
- Added support for screen-space contact shadows.
|
||
- Added support for global fog.
|
||
- Added support for bent normal maps and specular occlusion from bent normal maps.
|
||
- Added support for shadow-casting spot lights.
|
||
|
||
## v1.4.5
|
||
|
||
- The depth prepass setting in View is now ignored and deprecated.
|
||
- Fixed a threading bug with the NOOP backend.
|
||
- Improved memory management for gltfio on Android.
|
||
- Introduced `filament-utils` library with `TextureLoader`, `ModelViewer`, and Java bindings for `camutils`.
|
||
- Fix out-of-bounds bug when glTF has many UV sets.
|
||
- Added new `setMediaOverlay` API to `UiHelper` for controlling surface ordering.
|
||
- Implemented sRGB support for DXT encoded textures.
|
||
- Fix bug with incorrect world transforms computed in `TransformManager`.
|
||
- gltfio: support external resources on Android.
|
||
|
||
|
||
## v1.4.4
|
||
|
||
- Added support for solid and thin layer cubemap and screen-space refraction.
|
||
- Improved high roughness material rendering by default when regenerating environments maps.
|
||
- Fix bad instruction exception with macOS Catalina.
|
||
- Fixed bad state after removing an IBL from the Scene.
|
||
- Fixed incorrect punctual light binning (affected Metal and Vulkan backends).
|
||
- Fixed crash when using a Metal headless SwapChain with an Intel integrated GPU.
|
||
- Added support for ASTC textures on iOS with Metal backend.
|
||
- Added new heightfield sample.
|
||
- Removed `<iostream>` from math headers.
|
||
- cmgen now places KTX files directly in the specified deployment folder.
|
||
|
||
## v1.4.3
|
||
|
||
- Fixed an assertion when a parameter array occurs last in a material definition.
|
||
- Fixed morph shapes not rendering in WebGL.
|
||
- Added support for the latest version of emscripten.
|
||
- gltfio: fixed blackness seen with default material.
|
||
- 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.
|
||
- The Metal backend can now handle binding 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
|
||
|
||
## v1.4.2
|
||
|
||
- 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.
|
||
- gltfio: Added Java / Kotlin bindings for Animator.
|
||
- gltfio: Fixed panic with the Android gltf-bloom demo.
|
||
- gltfio: Java clients should no longer call Filament#init.
|
||
- Improved IBL diffuse by allowing to use the specular cubemap at `roughness` = 1 instead of Spherical Harmonics
|
||
|
||
## v1.4.1
|
||
|
||
- 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`.
|
||
- 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.
|
||
- Add JS binding to unary `Camera::setExposure`.
|
||
|
||
## v1.4.0
|
||
|
||
- API Breakage: Simplified public-facing Fence API.
|
||
- Minimum API level on Android is now API 19 instead of API 21.
|
||
- Filament can now be built with msvc 2019.
|
||
- Added the ability to modify clip space coordinates in the vertex shader.
|
||
- Added missing API documentation.
|
||
- Improved existing API documentation.
|
||
- Added `Camera::setExposure(float)` to directly control the camera's exposure.
|
||
- Backface culling can now be toggled on material instances.
|
||
- Face direction is now reversed when transforms have negative scale.
|
||
- 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).
|
||
- gltfio: Fixed several limitations with ubershader mode.
|
||
- gltfio: Fixed a transforms issue with non-uniform scale.
|
||
- webgl: Fixed an issue with JPEG textures.
|
||
- Windows: Fix link error in debug builds.
|
||
- matdbg: Web server must now be enabled with an environment variable.
|
||
- matdbg: Added support for editing GLSL and MSL code.
|
||
|
||
## v1.3.2
|
||
|
||
- Added optional web server for real-time inspection of shader code.
|
||
- Added basic #include support in material files.
|
||
- Fixed potential Metal memory leak.
|
||
- Fixed intermittent memory overflow in wasm builds.
|
||
- Fix bad normal mapping with skinning.
|
||
- Java clients can now call getNativeObject().
|
||
|
||
## v1.3.1
|
||
|
||
- Unified Filament Sceneform and npm releases.
|
||
- Improved cmgen SH with HDR images.
|
||
- IndirectLight can now be queried for dominant direction and color.
|
||
- Added support for vertex morphing.
|
||
- Introduced custom attributes, accessible from the vertex shader.
|
||
- Added Java / Kotlin bindings for KtxLoader.
|
||
- Added JavaScript / Typescript bindings for the new `RenderTarget` class.
|
||
- Added base path to glTF loadResources method for JavaScript.
|
||
- Added support for iOS `CVPixelBuffer` external images with the OpenGL backend.
|
||
|
||
## sceneform-1.9pr4
|
||
|
||
- 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.
|
||
- Fix support for parameter arrays in `.mat` files.
|
||
- 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
|
||
|
||
## sceneform-1.9pr3
|
||
|
||
- Added `Scene.addEntities()` to the Java / Kotlin bindings.
|
||
- Improved robustness in the tangents utility for meshes that have tangents *and* normals.
|
||
- 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
|
||
- Added a distance field generator to libimage.
|
||
- JavaScript MaterialInstance now supports vec4 colors.
|
||
- 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.
|
||
- Implemented hard fences for the Metal backend, enablying dynamic resolution support.
|
||
- Improved `SurfaceOrientation` robustness when using UVs to generate tangents.
|
||
- Created a `RELEASE_NOTES.md` file, to be updated with significant PRs.
|
||
|
||
## sceneform-1.9pr2
|