Compare commits
56 Commits
pf/metal-f
...
v1.9.11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f222f1b925 | ||
|
|
2839c352b8 | ||
|
|
6a01cbc312 | ||
|
|
6193156556 | ||
|
|
fe23aa917d | ||
|
|
eb8a29a332 | ||
|
|
0626902530 | ||
|
|
042bfe2597 | ||
|
|
97133f3591 | ||
|
|
d06cc4390e | ||
|
|
6047d3235f | ||
|
|
2cda6e35bd | ||
|
|
8f8d51e17b | ||
|
|
6919e3b274 | ||
|
|
10bf944410 | ||
|
|
9a2f6fdb53 | ||
|
|
761977d385 | ||
|
|
21248f15b5 | ||
|
|
4f32817f6d | ||
|
|
cc9e05e711 | ||
|
|
419d68d4db | ||
|
|
8450232448 | ||
|
|
cc51726590 | ||
|
|
318e22af51 | ||
|
|
68ac87dc24 | ||
|
|
acb8f00075 | ||
|
|
06d9183aaa | ||
|
|
75af25419d | ||
|
|
f6b90d2a31 | ||
|
|
a3822f4af0 | ||
|
|
bcdad769ff | ||
|
|
be4fb4fdbb | ||
|
|
65394f6301 | ||
|
|
b0beee03bc | ||
|
|
fe1de41b8e | ||
|
|
a37b431e87 | ||
|
|
98107016b9 | ||
|
|
8bccfc2863 | ||
|
|
f54a0a3452 | ||
|
|
6778ab0624 | ||
|
|
269d636785 | ||
|
|
39862c91ce | ||
|
|
523f4026b4 | ||
|
|
a6bf162431 | ||
|
|
826e8d181c | ||
|
|
16dfadbba0 | ||
|
|
5cbb97551f | ||
|
|
defee767c3 | ||
|
|
9560318521 | ||
|
|
ef09feb048 | ||
|
|
39f323fe09 | ||
|
|
11b95304ea | ||
|
|
b7c30a7916 | ||
|
|
4cae48fc77 | ||
|
|
d1a93f0557 | ||
|
|
b93059fad7 |
@@ -31,7 +31,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.google.android.filament:filament-android:1.9.10'
|
||||
implementation 'com.google.android.filament:filament-android:1.9.11'
|
||||
}
|
||||
```
|
||||
|
||||
@@ -63,7 +63,7 @@ A much smaller alternative to `filamat-android` that can only generate OpenGL sh
|
||||
iOS projects can use CocoaPods to install the latest release:
|
||||
|
||||
```
|
||||
pod 'Filament', '~> 1.9.10'
|
||||
pod 'Filament', '~> 1.9.11'
|
||||
```
|
||||
|
||||
### Snapshots
|
||||
|
||||
@@ -5,17 +5,53 @@ A new header is inserted each time a *tag* is created.
|
||||
|
||||
## Next release (main branch)
|
||||
|
||||
- Added `sheenColor` and `sheenRoughness` properties to materials to create cloth/fabric
|
||||
- gltfio: added support for `KHR_materials_sheen`
|
||||
- gltfio: shader optimizations are now disabled by default, unless opting in or using ubershaders
|
||||
- Materials generation using `libfilamat` is now multi-threaded
|
||||
## 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**)
|
||||
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
|
||||
|
||||
- Fix EXC_BAD_INSTRUCTION seen when using headless SwapChains on macOS with OpenGL.
|
||||
- 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
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
GROUP=com.google.android.filament
|
||||
VERSION_NAME=1.9.10
|
||||
VERSION_NAME=1.9.11
|
||||
|
||||
POM_DESCRIPTION=Real-time physically based rendering engine for Android.
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <math/vec4.h>
|
||||
|
||||
#include <utils/JobSystem.h>
|
||||
#include <utils/SpinLock.h>
|
||||
#include <utils/Systrace.h>
|
||||
|
||||
#include <functional>
|
||||
@@ -446,17 +447,22 @@ FColorGrading::FColorGrading(FEngine& engine, const Builder& builder) {
|
||||
|
||||
DriverApi& driver = engine.getDriverApi();
|
||||
|
||||
Config config{
|
||||
.colorGradingTransformIn = selectColorGradingTransformIn(builder->toneMapping),
|
||||
.colorGradingTransformOut = selectColorGradingTransformOut(builder->toneMapping),
|
||||
.lumaTransform = selectLumaTransform(builder->toneMapping),
|
||||
.linearToLogTransform = selectLinearToLogTransform(builder->toneMapping),
|
||||
.logToLinearTransform = selectLogToLinearTransform(builder->toneMapping),
|
||||
.toneMapper = selectToneMapping(builder->toneMapping),
|
||||
.lutDimension = selectLutDimension(builder->quality)
|
||||
};
|
||||
Config c;
|
||||
// This lock protects the data inside Config, which is written to by the Filament thread,
|
||||
// and read from multiple Job threads.
|
||||
utils::SpinLock configLock;
|
||||
{
|
||||
std::lock_guard<utils::SpinLock> lock(configLock);
|
||||
c.colorGradingTransformIn = selectColorGradingTransformIn(builder->toneMapping);
|
||||
c.colorGradingTransformOut = selectColorGradingTransformOut(builder->toneMapping);
|
||||
c.lumaTransform = selectLumaTransform(builder->toneMapping);
|
||||
c.linearToLogTransform = selectLinearToLogTransform(builder->toneMapping);
|
||||
c.logToLinearTransform = selectLogToLinearTransform(builder->toneMapping);
|
||||
c.toneMapper = selectToneMapping(builder->toneMapping);
|
||||
c.lutDimension = selectLutDimension(builder->quality);
|
||||
}
|
||||
|
||||
size_t lutElementCount = config.lutDimension * config.lutDimension * config.lutDimension;
|
||||
size_t lutElementCount = c.lutDimension * c.lutDimension * c.lutDimension;
|
||||
size_t elementSize = sizeof(half4);
|
||||
void* data = malloc(lutElementCount * elementSize);
|
||||
|
||||
@@ -479,8 +485,14 @@ FColorGrading::FColorGrading(FEngine& engine, const Builder& builder) {
|
||||
// This takes about 3-6ms on Android in Release
|
||||
JobSystem& js = engine.getJobSystem();
|
||||
auto *slices = js.createJob();
|
||||
for (size_t b = 0; b < config.lutDimension; b++) {
|
||||
auto *job = js.createJob(slices, [data, converted, b, &config, builder](JobSystem&, JobSystem::Job*) {
|
||||
for (size_t b = 0; b < c.lutDimension; b++) {
|
||||
auto *job = js.createJob(slices,
|
||||
[data, converted, b, &c, &configLock, builder](JobSystem&, JobSystem::Job*) {
|
||||
Config config;
|
||||
{
|
||||
std::lock_guard<utils::SpinLock> lock(configLock);
|
||||
config = c;
|
||||
}
|
||||
half4* UTILS_RESTRICT p = (half4*) data + b * config.lutDimension * config.lutDimension;
|
||||
for (size_t g = 0; g < config.lutDimension; g++) {
|
||||
for (size_t r = 0; r < config.lutDimension; r++) {
|
||||
@@ -581,7 +593,7 @@ FColorGrading::FColorGrading(FEngine& engine, const Builder& builder) {
|
||||
//slog.d << "LUT generation time: " << duration.count() << " ms" << io::endl;
|
||||
|
||||
mLutHandle = driver.createTexture(SamplerType::SAMPLER_3D, 1, textureFormat, 1,
|
||||
config.lutDimension, config.lutDimension, config.lutDimension, TextureUsage::DEFAULT);
|
||||
c.lutDimension, c.lutDimension, c.lutDimension, TextureUsage::DEFAULT);
|
||||
|
||||
if (converted) {
|
||||
free(data);
|
||||
@@ -591,7 +603,7 @@ FColorGrading::FColorGrading(FEngine& engine, const Builder& builder) {
|
||||
|
||||
driver.update3DImage(mLutHandle, 0,
|
||||
0, 0, 0,
|
||||
config.lutDimension, config.lutDimension, config.lutDimension,
|
||||
c.lutDimension, c.lutDimension, c.lutDimension,
|
||||
PixelBufferDescriptor{
|
||||
data, lutElementCount * elementSize,format, type,
|
||||
[](void* buffer, size_t, void*) { free(buffer); }
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Pod::Spec.new do |spec|
|
||||
spec.name = "Filament"
|
||||
spec.version = "1.9.10"
|
||||
spec.version = "1.9.11"
|
||||
spec.license = { :type => "Apache 2.0", :file => "LICENSE" }
|
||||
spec.homepage = "https://google.github.io/filament"
|
||||
spec.authors = "Google LLC."
|
||||
spec.summary = "Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WASM/WebGL."
|
||||
spec.platform = :ios, "11.0"
|
||||
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.9.10/filament-v1.9.10-ios.tgz" }
|
||||
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.9.11/filament-v1.9.11-ios.tgz" }
|
||||
|
||||
# Fix linking error with Xcode 12; we do not yet support the simulator on Apple silicon.
|
||||
spec.pod_target_xcconfig = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "filament",
|
||||
"version": "1.9.10",
|
||||
"version": "1.9.11",
|
||||
"description": "Real-time physically based rendering engine",
|
||||
"main": "filament.js",
|
||||
"module": "filament.js",
|
||||
|
||||
Reference in New Issue
Block a user