VSM blur is now specified as a width in pixels

This is a lot more intuitive than using the standard deviation.
This commit is contained in:
Mathias Agopian
2021-06-24 22:27:57 -07:00
committed by Mathias Agopian
parent ef6199a792
commit 61bf472426
8 changed files with 40 additions and 45 deletions

View File

@@ -77,7 +77,7 @@ Java_com_google_android_filament_LightManager_nBuilderShadowOptions(JNIEnv* env,
jlong nativeBuilder, jint mapSize, jint cascades, jfloatArray splitPositions,
jfloat constantBias, jfloat normalBias, jfloat shadowFar, jfloat shadowNearHint,
jfloat shadowFarHint, jboolean stable, jboolean screenSpaceContactShadows, jint stepCount,
jfloat maxShadowDistance, jint vsmMsaaSamples, jfloat blurStandardDeviation) {
jfloat maxShadowDistance, jint vsmMsaaSamples, jfloat blurWidth) {
LightManager::Builder *builder = (LightManager::Builder *) nativeBuilder;
LightManager::ShadowOptions shadowOptions {
.mapSize = (uint32_t)mapSize,
@@ -93,7 +93,7 @@ Java_com_google_android_filament_LightManager_nBuilderShadowOptions(JNIEnv* env,
.maxShadowDistance = maxShadowDistance,
.vsm = {
.msaaSamples = (uint8_t) vsmMsaaSamples,
.blurStandardDeviation = blurStandardDeviation
.blurWidth = blurWidth
}
};
jfloat *nativeSplits = env->GetFloatArrayElements(splitPositions, NULL);