diff --git a/android/filamat-android/src/main/cpp/MaterialBuilder.cpp b/android/filamat-android/src/main/cpp/MaterialBuilder.cpp index 6069b39eeb..48b83ecfdf 100644 --- a/android/filamat-android/src/main/cpp/MaterialBuilder.cpp +++ b/android/filamat-android/src/main/cpp/MaterialBuilder.cpp @@ -226,17 +226,24 @@ Java_com_google_android_filament_filamat_MaterialBuilder_nMaterialBuilderShadowM } extern "C" JNIEXPORT void JNICALL -Java_com_google_android_filament_filamat_MaterialBuilder_nMaterialBuilderCurvatureToRoughness( - JNIEnv*, jclass, jlong nativeBuilder, jboolean curvatureToRoughness) { +Java_com_google_android_filament_filamat_MaterialBuilder_nMaterialBuilderSpecularAntiAliasing( + JNIEnv*, jclass, jlong nativeBuilder, jboolean specularAntiAliasing) { auto builder = (MaterialBuilder*) nativeBuilder; - builder->curvatureToRoughness(curvatureToRoughness); + builder->specularAntiAliasing(specularAntiAliasing); } extern "C" JNIEXPORT void JNICALL -Java_com_google_android_filament_filamat_MaterialBuilder_nMaterialBuilderLimitOverInterpolation( - JNIEnv*, jclass, jlong nativeBuilder, jboolean limitOverInterpolation) { +Java_com_google_android_filament_filamat_MaterialBuilder_nMaterialBuilderSpecularAntiAliasingVariance( + JNIEnv*, jclass, jlong nativeBuilder, jfloat variance) { auto builder = (MaterialBuilder*) nativeBuilder; - builder->limitOverInterpolation(limitOverInterpolation); + builder->specularAntiAliasingVariance(variance); +} + +extern "C" JNIEXPORT void JNICALL +Java_com_google_android_filament_filamat_MaterialBuilder_nMaterialBuilderSpecularAntiAliasingThreshold( + JNIEnv*, jclass, jlong nativeBuilder, jfloat threshold) { + auto builder = (MaterialBuilder*) nativeBuilder; + builder->specularAntiAliasingThreshold(threshold); } extern "C" JNIEXPORT void JNICALL diff --git a/android/filamat-android/src/main/java/com/google/android/filament/filamat/MaterialBuilder.java b/android/filamat-android/src/main/java/com/google/android/filament/filamat/MaterialBuilder.java index 81689afeeb..532f2d8ee9 100644 --- a/android/filamat-android/src/main/java/com/google/android/filament/filamat/MaterialBuilder.java +++ b/android/filamat-android/src/main/java/com/google/android/filament/filamat/MaterialBuilder.java @@ -290,14 +290,20 @@ public class MaterialBuilder { } @NonNull - public MaterialBuilder curvatureToRoughness(boolean curvatureToRoughness) { - nMaterialBuilderCurvatureToRoughness(mNativeObject, curvatureToRoughness); + public MaterialBuilder specularAntiAliasing(boolean specularAntiAliasing) { + nMaterialBuilderSpecularAntiAliasing(mNativeObject, specularAntiAliasing); return this; } @NonNull - public MaterialBuilder limitOverInterpolation(boolean limitOverInterpolation) { - nMaterialBuilderLimitOverInterpolation(mNativeObject, limitOverInterpolation); + public MaterialBuilder specularAntiAliasingVariance(float variance) { + nMaterialBuilderSpecularAntiAliasingVariance(mNativeObject, variance); + return this; + } + + @NonNull + public MaterialBuilder specularAntiAliasingThreshold(float threshold) { + nMaterialBuilderSpecularAntiAliasingThreshold(mNativeObject, threshold); return this; } @@ -420,10 +426,12 @@ public class MaterialBuilder { private static native void nMaterialBuilderShadowMultiplier(long mNativeObject, boolean shadowMultiplier); - private static native void nMaterialBuilderCurvatureToRoughness(long mNativeObject, - boolean curvatureToRoughness); - private static native void nMaterialBuilderLimitOverInterpolation(long mNativeObject, - boolean limitOverInterpolation); + private static native void nMaterialBuilderSpecularAntiAliasing(long mNativeObject, + boolean specularAntiAliasing); + private static native void nMaterialBuilderSpecularAntiAliasingVariance(long mNativeObject, + float variance); + private static native void nMaterialBuilderSpecularAntiAliasingThreshold(long mNativeObject, + float threshold); private static native void nMaterialBuilderClearCoatIorChange(long mNativeObject, boolean clearCoatIorChange); private static native void nMaterialBuilderFlipUV(long nativeBuilder, boolean flipUV); diff --git a/android/filament-android/src/main/cpp/Material.cpp b/android/filament-android/src/main/cpp/Material.cpp index 9dc83f52d7..366c3e9f78 100644 --- a/android/filament-android/src/main/cpp/Material.cpp +++ b/android/filament-android/src/main/cpp/Material.cpp @@ -140,6 +140,22 @@ Java_com_google_android_filament_Material_nGetMaskThreshold(JNIEnv*, jclass, return material->getMaskThreshold(); } +extern "C" +JNIEXPORT jfloat JNICALL +Java_com_google_android_filament_Material_nGetSpecularAntiAliasingVariance(JNIEnv*, jclass, + jlong nativeMaterial) { + Material* material = (Material*) nativeMaterial; + return material->getSpecularAntiAliasingVariance(); +} + +extern "C" +JNIEXPORT jfloat JNICALL +Java_com_google_android_filament_Material_nGetSpecularAntiAliasingThreshold(JNIEnv*, jclass, + jlong nativeMaterial) { + Material* material = (Material*) nativeMaterial; + return material->getSpecularAntiAliasingThreshold(); +} + extern "C" JNIEXPORT jint JNICALL Java_com_google_android_filament_Material_nGetParameterCount(JNIEnv*, jclass, diff --git a/android/filament-android/src/main/cpp/MaterialInstance.cpp b/android/filament-android/src/main/cpp/MaterialInstance.cpp index 785ba08f02..0223ca1a5a 100644 --- a/android/filament-android/src/main/cpp/MaterialInstance.cpp +++ b/android/filament-android/src/main/cpp/MaterialInstance.cpp @@ -226,6 +226,22 @@ Java_com_google_android_filament_MaterialInstance_nSetMaskThreshold(JNIEnv*, instance->setMaskThreshold(threshold); } +extern "C" +JNIEXPORT void JNICALL +Java_com_google_android_filament_MaterialInstance_nSetSpecularAntiAliasingVariance(JNIEnv*, + jclass, jlong nativeMaterialInstance, jfloat variance) { + MaterialInstance* instance = (MaterialInstance*) nativeMaterialInstance; + instance->setSpecularAntiAliasingVariance(variance); +} + +extern "C" +JNIEXPORT void JNICALL +Java_com_google_android_filament_MaterialInstance_nSetSpecularAntiAliasingThreshold(JNIEnv*, + jclass, jlong nativeMaterialInstance, jfloat threshold) { + MaterialInstance* instance = (MaterialInstance*) nativeMaterialInstance; + instance->setSpecularAntiAliasingThreshold(threshold); +} + extern "C" JNIEXPORT void JNICALL Java_com_google_android_filament_MaterialInstance_nSetDoubleSided(JNIEnv*, diff --git a/android/filament-android/src/main/java/com/google/android/filament/Material.java b/android/filament-android/src/main/java/com/google/android/filament/Material.java index c982897ab5..67b58205c8 100644 --- a/android/filament-android/src/main/java/com/google/android/filament/Material.java +++ b/android/filament-android/src/main/java/com/google/android/filament/Material.java @@ -215,6 +215,14 @@ public class Material { return nGetMaskThreshold(getNativeObject()); } + public float getSpecularAntiAliasingVariance() { + return nGetSpecularAntiAliasingVariance(getNativeObject()); + } + + public float getSpecularAntiAliasingThreshold() { + return nGetSpecularAntiAliasingThreshold(getNativeObject()); + } + public Set getRequiredAttributes() { if (mRequiredAttributes == null) { int bitSet = nGetRequiredAttributes(getNativeObject()); @@ -356,6 +364,8 @@ public class Material { private static native boolean nIsDepthCullingEnabled(long nativeMaterial); private static native boolean nIsDoubleSided(long nativeMaterial); private static native float nGetMaskThreshold(long nativeMaterial); + private static native float nGetSpecularAntiAliasingVariance(long nativeMaterial); + private static native float nGetSpecularAntiAliasingThreshold(long nativeMaterial); private static native int nGetParameterCount(long nativeMaterial); private static native void nGetParameters(long nativeMaterial, diff --git a/android/filament-android/src/main/java/com/google/android/filament/MaterialInstance.java b/android/filament-android/src/main/java/com/google/android/filament/MaterialInstance.java index 1460f47bb3..3b9db03151 100644 --- a/android/filament-android/src/main/java/com/google/android/filament/MaterialInstance.java +++ b/android/filament-android/src/main/java/com/google/android/filament/MaterialInstance.java @@ -155,6 +155,14 @@ public class MaterialInstance { nSetMaskThreshold(getNativeObject(), threshold); } + public void setSpecularAntiAliasingVariance(float variance) { + nSetSpecularAntiAliasingVariance(getNativeObject(), variance); + } + + public void setSpecularAntiAliasingThreshold(float threshold) { + nSetSpecularAntiAliasingThreshold(getNativeObject(), threshold); + } + public void setDoubleSided(boolean doubleSided) { nSetDoubleSided(getNativeObject(), doubleSided); } @@ -218,9 +226,14 @@ public class MaterialInstance { private static native void nUnsetScissor(long nativeMaterialInstance); private static native void nSetPolygonOffset(long nativeMaterialInstance, - float scale, float constant); + float scale, float constant); private static native void nSetMaskThreshold(long nativeMaterialInstance, float threshold); + private static native void nSetSpecularAntiAliasingVariance(long nativeMaterialInstance, + float variance); + private static native void nSetSpecularAntiAliasingThreshold(long nativeMaterialInstance, + float threshold); + private static native void nSetDoubleSided(long nativeMaterialInstance, boolean doubleSided); } diff --git a/docs/Materials.html b/docs/Materials.html index ca927400bd..3b2ecf7c20 100644 --- a/docs/Materials.html +++ b/docs/Materials.html @@ -86,8 +86,9 @@ counter-increment: h6;margin-right:10px}