Compare commits

..

11 Commits

Author SHA1 Message Date
Benjamin Doherty
f463d53036 Merge branch 'rc/1.12.7' into release 2021-10-04 10:21:42 -07:00
Benjamin Doherty
b8d4408524 Update RELEASE_NOTES for 1.12.7 2021-10-04 10:18:56 -07:00
Benjamin Doherty
fef70be848 Bump version to 1.12.7 2021-09-27 11:15:58 -07:00
Benjamin Doherty
510f51d934 Release Filament 1.12.6 2021-09-27 11:12:08 -07:00
Ben Doherty
47c9fd67e2 Fix, missing call to setTransparencyMode (#4674) 2021-09-24 13:35:54 -07:00
Benjamin Doherty
1f403fdae0 Revert "fix a race in jobsystem"
This reverts commit 2feb0ad325.
2021-09-24 11:33:14 -07:00
Ben Doherty
1a3cee9da9 Metal: don't call createTextureViewWithsSwizzle directly (#4662) 2021-09-23 11:27:07 -07:00
Ben Doherty
3acfd6fc78 Fix MetalBlitter crash when shader contains warnings (#4663) 2021-09-23 11:26:50 -07:00
Alexey Pelykh
83a9bb3a6f Podspec: include headers in nested directories (#4658) 2021-09-22 11:57:23 -07:00
Mathias Agopian
0744876327 improve how the structure pass commands are generated
the code generating the commands for the structure pass (called DEPTH)
in the code was different that from the color. This made sense, but 
isn't great from an architectural standpoint.
Moreover, the special filtering flags DEPTH_FILTER_*_OBJECTS were
useless because part of their functionality was handled in the DEPTH
code directly.

Instead, we now generate the DEPTH commands the same way than we do for
COLOR, but we honor the DEPTH_FILTER_*_OBJECTS flags properly.
2021-09-20 21:25:10 -07:00
Romain Guy
8b92519113 Emissive needs to be applied after shadowing (#4653)
By definition, an emissive surface won't be affected by shadowing
since it's its own light source.
2021-09-20 11:25:26 -07:00
8 changed files with 26 additions and 21 deletions

View File

@@ -31,7 +31,7 @@ repositories {
}
dependencies {
implementation 'com.google.android.filament:filament-android:1.12.6'
implementation 'com.google.android.filament:filament-android:1.12.7'
}
```
@@ -52,7 +52,7 @@ Here are all the libraries available in the group `com.google.android.filament`:
iOS projects can use CocoaPods to install the latest release:
```
pod 'Filament', '~> 1.12.6'
pod 'Filament', '~> 1.12.7'
```
### Snapshots

View File

@@ -3,7 +3,13 @@
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.
## v1.12.6 (currently main branch)
## v1.12.8 (currently main branch)
## 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**].

View File

@@ -1,5 +1,5 @@
GROUP=com.google.android.filament
VERSION_NAME=1.12.6
VERSION_NAME=1.12.7
POM_DESCRIPTION=Real-time physically based rendering engine for Android.

View File

@@ -357,8 +357,7 @@ Handle<HwProgram> FMaterial::getProgramSlow(uint8_t variantKey) const noexcept {
}
}
Handle<HwProgram> FMaterial::getSurfaceProgramSlow(uint8_t variantKey)
const noexcept {
Handle<HwProgram> FMaterial::getSurfaceProgramSlow(uint8_t variantKey) const noexcept {
// filterVariant() has already been applied in generateCommands(), shouldn't be needed here
// if we're unlit, we don't have any bits that correspond to lit materials
assert_invariant( variantKey == Variant::filterVariant(variantKey, isVariantLit()) );

View File

@@ -456,24 +456,24 @@ void RenderPass::generateCommandsImpl(uint32_t extraFlags,
if (isDepthPass) {
FMaterial const* const ma = mi->getMaterial();
RasterState rs = ma->getRasterState();
const RasterState rs = ma->getRasterState();
const TransparencyMode mode = mi->getTransparencyMode();
const BlendingMode blendingMode = ma->getBlendingMode();
const bool translucent = (blendingMode != BlendingMode::OPAQUE
&& blendingMode != BlendingMode::MASKED);
// unconditionally write the command
cmdDepth.primitive.primitiveHandle = primitive.getHwHandle();
cmdDepth.primitive.mi = mi;
cmdDepth.primitive.rasterState.culling = mi->getCullingMode();
*curr = cmdDepth;
BlendingMode blendingMode = ma->getBlendingMode();
bool translucent = (blendingMode != BlendingMode::OPAQUE && blendingMode != BlendingMode::MASKED);
// FIXME: should writeDepthForShadowCasters take precedence over rs.depthWrite?
bool issueDepth = (rs.depthWrite
// FIXME: should writeDepthForShadowCasters take precedence over mi->getDepthWrite()?
cmdDepth.primitive.rasterState.depthWrite = (1 // only keep bit 0
& (mi->getDepthWrite() | (mode == TransparencyMode::TWO_PASSES_ONE_SIDE))
& !(depthFilterTranslucentObjects & translucent)
& !(depthFilterAlphaMaskedObjects & rs.alphaToCoverage))
| writeDepthForShadowCasters;
curr->key |= select(!issueDepth);
| writeDepthForShadowCasters;
*curr = cmdDepth;
// handle the case where this primitive is empty / no-op
curr->key |= select(primitive.getPrimitiveType() == PrimitiveType::NONE);

View File

@@ -1,12 +1,12 @@
Pod::Spec.new do |spec|
spec.name = "Filament"
spec.version = "1.12.6"
spec.version = "1.12.7"
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.12.6/filament-v1.12.6-ios.tgz" }
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.12.7/filament-v1.12.7-ios.tgz" }
# Fix linking error with Xcode 12; we do not yet support the simulator on Apple silicon.
spec.pod_target_xcconfig = {

View File

@@ -37,8 +37,6 @@ vec4 evaluateMaterial(const MaterialInputs material) {
}
#endif
addEmissive(material, color);
#if defined(HAS_DIRECTIONAL_LIGHTING)
#if defined(HAS_SHADOWING)
float visibility = 1.0;
@@ -62,5 +60,7 @@ vec4 evaluateMaterial(const MaterialInputs material) {
color = vec4(0.0);
#endif
addEmissive(material, color);
return color;
}

View File

@@ -1,6 +1,6 @@
{
"name": "filament",
"version": "1.12.6",
"version": "1.12.7",
"description": "Real-time physically based rendering engine",
"main": "filament.js",
"module": "filament.js",