[Bf-blender-cvs] [cb50697d893] lineart-shadow: LineArt: Versioning and guarding for shadow camera
YimingWu
noreply at git.blender.org
Mon Aug 2 08:31:38 CEST 2021
Commit: cb50697d893ca8f19dcbfd0bdcab354985a1ec8b
Author: YimingWu
Date: Mon Aug 2 14:01:08 2021 +0800
Branches: lineart-shadow
https://developer.blender.org/rBcb50697d893ca8f19dcbfd0bdcab354985a1ec8b
LineArt: Versioning and guarding for shadow camera
===================================================================
M source/blender/blenloader/intern/versioning_300.c
M source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index a632c8c7fde..c694be2b7f6 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -704,6 +704,16 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
+ LISTBASE_FOREACH (Object *, ob, &bmain->objects) {
+ LISTBASE_FOREACH (GpencilModifierData *, gpd, &ob->greasepencil_modifiers) {
+ if (gpd->type == eGpencilModifierType_Lineart) {
+ LineartGpencilModifierData *lmd = (LineartGpencilModifierData *)gpd;
+ lmd->shadow_camera_near = 0.1f;
+ lmd->shadow_camera_far = 200.0f;
+ lmd->shadow_camera_size = 200.0f;
+ }
+ }
+ }
}
/**
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 00712763767..ab8eaf7e603 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -5092,6 +5092,14 @@ static bool lineart_main_try_generate_shadow(Depsgraph *depsgraph,
rb->far_clip = lmd->shadow_camera_far;
rb->w = lmd->shadow_camera_size;
rb->h = lmd->shadow_camera_size;
+ /* Need to prevent wrong camera configuration so that shadow computation won't stall. */
+ if (!rb->w || !rb->h) {
+ rb->w = rb->h = 200;
+ }
+ if (!rb->near_clip || !rb->far_clip) {
+ rb->near_clip = 0.1f;
+ rb->far_clip = 200.0f;
+ }
rb->tile_recursive_level = is_persp ? LRT_TILE_RECURSIVE_PERSPECTIVE : LRT_TILE_RECURSIVE_ORTHO;
rb->use_crease = rb->use_material = rb->use_edge_marks = rb->use_intersections =
rb->use_light_contour = rb->use_loose = false;
More information about the Bf-blender-cvs
mailing list