Releases: google/filament
Releases · google/filament
Sceneform 1.7pr2
This release of Filament is a check point release towards Sceneform 1.7.
List of changes since sceneform-1.7pr1:
Features
Engine
View::setFrontFaceWindingInverted
can be used to change the winding order of front faces. This is useful for mirrored rendering (reflections, etc.)- Added
View::setRenderQuality
API. It currently allows the use of anR11G11B10F
HDR color buffer instead ofRGB[A]16F
- Added the ability to set the polygon offset on a material instance
- Added API to compute tangent frame from vertex data (in
VertexBuffer
)
Materials
- Use
getUserTime()
to get the current time in seconds. SeeRenderer::resetUserTime()
for more information
Tools
matc
features are now part oflibfilamat
to generate materials at runtimeresgen
tool to embed data in binaries (pre-compiled materials, etc.)
Samples
- Samples:
snorm16
UVs if UVs are in the range-1..1
- Samples: New webpack/TypeScript demos
- Samples: Added
gltf_viewer
sample
Enhancements
Engine
- Improved skinning memory usage
- Improved job system performance
- Set CPU affinity on job system threads on Android to avoid core hopping/cache thrashing
- Froxelization now runs during the shadow pass for improved parallelism
- Lights culling is now parallelized with renderables culling
- Various performance and code size optimizations
- Use compile-time hashing in
StaticString
Materials
- Shader optimizations are now on by default
- Shader optimizations can now be applied to materials that use external textures
- Use smol-v to compress SPIR-V shaders
Android
- Android: API level requirement on Android was lowered from 24 to 21
- Android: Reduced the size of the release AAR by ~150 KiB
- Android:
UiHelper
can now create transparent render targets - Android: Added a transparent render target demo
Web
- The JavaScript API now supports compressed textures
- Disabled depth prepass in the WebGL builds
Distribution
- Linux CI builds are now compiled with clang 7.0 instead of clang 5.0
Bug fixes
Engine
- Fixed overflow issue when exactly 256 bones were declared in a renderable
- Fixed potential crash when copying a texture stream
FADE
materials are now properly sorted withTRANSPARENT
materials
Vulkan
- Fixed mipmapping of 2D textures
- Fixed validation warning
- Fixed texture anisotropy in the Vulkan backend
- Depth offset and face culling now work
v1.1.0
Summary of changes since v1.0.0:
Features
- Web: added support for TypeScript,
import
, and JPEG textures - C++ clients can now read KTX textures using the
image
library matc
features are now part oflibfilamat
to generate materials at runtime- Added the ability to set the polygon offset on a material instance
- Added API to compute tangent frame from vertex data (in VertexBuffer)
- Added
View::setRenderQuality
API
Enhancements
- Added NOOP backend to allow headless regression testing
- Added compression to filamesh via meshoptimizer
- Added snorm16 quantization for UV's in filamesh
- Use smol-v to compress SPIR-V shaders in materials
- Many Code size and performance optimizations
- The JavaScript API now supports compressed textures
- Disabled depth prepass in the WebGL builds
- Added
gltf_viewer
sample - Introduced
resgen
tool to embed data in binaries (pre-compiled materials, etc.)
Bug fixes
- Synchronization fixes: switched to
utils::Mutex
, fixed sporadic test failures - cmgen / mipgen: fixed format in KTX header
- Fixed texture anisotropy in the Vulkan backend
- Depth offset and face culling now work in the Vulkan backend
- Fixed the documentation
- FADE materials are now properly sorted with TRANSPARENT materials
Sceneform 1.7pr1
This release of Filament is a check point release towards Sceneform 1.7.
List of changes since v1.0.0:
Features
- Added the ability to set the polygon offset on a material instance
matc
features are now part oflibfilamat
to generate materials at runtime- Added API to compute tangent frame from vertex data (in
VertexBuffer
) - Added
View::setRenderQuality
API. It currently allows the use of anR11G11B10F
HDR color buffer instead ofRGB[A]16F
Enhancements
- Use smol-v to compress SPIR-V shaders in materials
- Many Code size and performance optimizations
- The JavaScript API now supports compressed textures
- Disabled depth prepass in the WebGL builds
- Added
gltf_viewer
sample - Introduced
resgen
tool to embed data in binaries (pre-compiled materials, etc.)
Bug fixes
- Fixed texture anisotropy in the Vulkan backend
- Depth offset and face culling now work in the Vulkan backend
- Fixed the documentation
- FADE materials are now properly sorted with TRANSPARENT materials
Sceneform 1.6pr6
This release of Filament is a check point release towards Sceneform 1.6.
Bug fixes
- Many threading issues related to the JobSystem
v1.0.0
This is our first release using a new version scheme.
Features
- Introduced iOS build
- Added tutorials / demos for JavaScript API
- Overhauled uniform buffer management
Enhancements
- Updated Android samples to Kotlin 1.3
- Consolidated WebGL code into root-level
web
folder - Added KTX and PNG support to JavaScript API
- Added support for ANDROID_get_frame_timestamps
Bug fixes
- Fixed issues with job system
- Fixed buffer lifetime bug with JS API
- Fixed FXAA alignment issue that caused unwanted borders
- Fixed normals issue with JavaScript IcoSphere
Sceneform 1.6pr5
This release of Filament is a check point release towards Sceneform 1.6.
Features
- Added a proper JavaScript API
- Added new
TextureHelper
in the Java API to upload AndroidBitmap
objects easily, without an extra copy - Added Stream::getTimestamp() to query the update timestamp of a stream texture
- Added buffer usage hints to the driver interface
- Added new Android sample project to demonstrate how to texture meshes
- Added new
filameshio
library to read files generated byfilamesh
Enhancements
- Improved Java APIs when used from Kotlin
- Updated release archives instructions to detail how to link against prebuilt libraries
Bug fixes
- Fixed tangent frame computation on mobile when a scale is present
- Fixed a shader typo that caused GPU skinning to fail
- Fixed normals transformations when skinning with non-uniform scales
- Fixed an INVALID_OPERATION bug in the OpenGL backend
Sceneform 1.6pr3
This release of Filament is a check point release towards Sceneform 1.6.
Features
Runtime
- Added WebGL/WASM support
- Skinning supports non-rigid transforms
- Add the ability to mirror a frame (for video recording for instance)
- Removed dependencies on OpenGL ES 3.1 for iOS
- The clear coat layer's roughness influences the roughness of the base layer
Tools
- Added ASTC/S3TC/ETC2 texture compression support (
cmgen
can output compressed textures for instance) - Added KTX export
- Added mipmap generation tool
mipgen
cmgen
can generate equirectangular maps- Many improvements to Tungsten, Filament's visual material editor (IBL, textures support, lighting, etc.)
Samples
- New Android sample applications in Kotlin
- Added WebGL samples
Optimizations
- Skip a copy when updating per-renderable uniform buffers
- Store all per-renderable uniform blocks in a single buffer
- Use slightly optimized Fresnel term on mobile
- Folded the Lambert BRDF in the Spherical Harmonics
- Skip lighting and shadowing in the shaders when possible
Bug fixes
- Fixed division by 0 in the froxelization pass
- Fixed division by 0 in
cmgen
- Fixed Vulkan crash
- Fixed invalid SPIR-V generation
- Fixed the anisotropic BRDF on mobile
- Fixed Fresnel term when f90 was less than 1 on desktop
- Fixed cubemaps mirroring in
cmgen
- Make shadowMultiplier objets transparent when not lit
Improvements
- Revamped RGBM support
- Improved the quality of the IBLs generated by
cmgen
- Improved cubemap generation and handling in
cmgen
- Improved Java APIs for Kotlin
- Better support fo grayscale images in tools
- Moved from OpenEXR to TinyEXR
- Various other fixes for minor bugs and crashes
Initial public release update
This release of Filament is a small update to the initial release. Windows binaries are now available.
Features
- Added
clearCoatNormal
property to set a normal map on the clear coat layer - Switch the cloth material model to a more intuitive parameterization/BRDF
Optimizations
- Optimizations in the lights assignment process
- Better multi-threading of the lights assignment process
- Reduced memory usage of the lights assignment process
- Post-processing shaders do not use
highp
computations anymore
Bug fixes and improvements
- Complete revamp of
libimage
- Bug fixes to lights assignement
cmgen
did not process cross cube maps properlycmgen
could sometimes use uninitialized memory when computing spherical harmonics- Updated
glslang
,spirv-cross
andspirv-tools
- Various fixes in the Vulkan backend