Implement blurring of VSM shadow maps
This is still somewhat work-in-progress, but good enough to be useful. Some caveats: - large blurs don't work well with cascades - the implementation uses more memory than it could
This commit is contained in:
committed by
Mathias Agopian
parent
eb0c346969
commit
7bd0b45a2b
@@ -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 maxShadowDistance, jint vsmMsaaSamples, jfloat blurStandardDeviation) {
|
||||
LightManager::Builder *builder = (LightManager::Builder *) nativeBuilder;
|
||||
LightManager::ShadowOptions shadowOptions {
|
||||
.mapSize = (uint32_t)mapSize,
|
||||
@@ -92,7 +92,8 @@ Java_com_google_android_filament_LightManager_nBuilderShadowOptions(JNIEnv* env,
|
||||
.stepCount = uint8_t(stepCount),
|
||||
.maxShadowDistance = maxShadowDistance,
|
||||
.vsm = {
|
||||
.msaaSamples = (uint8_t) vsmMsaaSamples
|
||||
.msaaSamples = (uint8_t) vsmMsaaSamples,
|
||||
.blurStandardDeviation = blurStandardDeviation
|
||||
}
|
||||
};
|
||||
jfloat *nativeSplits = env->GetFloatArrayElements(splitPositions, NULL);
|
||||
|
||||
Reference in New Issue
Block a user