Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYimingWu <xp8110@outlook.com>2021-06-28 17:26:23 +0300
committerYimingWu <xp8110@outlook.com>2021-06-28 17:26:23 +0300
commitcf21ba37efafbedc9e5d7f8624ce82370fe17a62 (patch)
tree4691123ee5fc43e8935b51c793d7e9b7b1aea9ec /source/blender/makesdna
parent9c6a382f9540c8e334a16b7740b5ba6bb294fca9 (diff)
LineArt: Occlusion effectiveness support
This patch adds a function where you can specify occlusion effectiveness from 0 to 255 layers per face for a given mesh material. Reviewed By: Sebastian Parborg (zeddb) Ref D11308
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_gpencil_modifier_types.h14
-rw-r--r--source/blender/makesdna/DNA_material_types.h16
-rw-r--r--source/blender/makesdna/intern/dna_rename_defs.h3
3 files changed, 22 insertions, 11 deletions
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index f12d5e44a3c..0bd7e500044 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -883,11 +883,11 @@ typedef enum eLineArtGPencilModifierFlags {
LRT_GPENCIL_USE_CACHE = (1 << 4),
} eLineArtGPencilModifierFlags;
-typedef enum eLineartGpencilTransparencyFlags {
- LRT_GPENCIL_TRANSPARENCY_ENABLE = (1 << 0),
- /** Set to true means using "and" instead of "or" logic on mask bits. */
- LRT_GPENCIL_TRANSPARENCY_MATCH = (1 << 1),
-} eLineartGpencilTransparencyFlags;
+typedef enum eLineartGpencilMaterialMaskFlags {
+ LRT_GPENCIL_MATERIAL_MASK_ENABLE = (1 << 0),
+ /** When set, material mask bit comparisons are done with bit wise "AND" instead of "OR". */
+ LRT_GPENCIL_MATERIAL_MASK_MATCH = (1 << 1),
+} eLineartGpencilMaterialMaskFlags;
struct LineartCache;
@@ -918,8 +918,8 @@ typedef struct LineartGpencilModifierData {
float opacity;
short thickness;
- unsigned char transparency_flags; /* eLineartGpencilTransparencyFlags */
- unsigned char transparency_mask;
+ unsigned char material_mask_flags; /* eLineartGpencilMaterialMaskFlags */
+ unsigned char material_mask_bits;
/** `0..1` range for cosine angle */
float crease_threshold;
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index 5bc8370a159..62933d44afd 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -146,13 +146,21 @@ typedef enum eMaterialGPencilStyle_Mode {
} eMaterialGPencilStyle_Mode;
typedef struct MaterialLineArt {
- int flags; /* eMaterialLineArtFlags */
- unsigned char transparency_mask;
- unsigned char _pad[3];
+ /* eMaterialLineArtFlags */
+ int flags;
+
+ /* Used to filter line art occlusion edges */
+ unsigned char material_mask_bits;
+
+ /** Maximum 255 levels of equavalent occlusion. */
+ unsigned char mat_occlusion;
+
+ unsigned char _pad[2];
} MaterialLineArt;
typedef enum eMaterialLineArtFlags {
- LRT_MATERIAL_TRANSPARENCY_ENABLED = (1 << 0),
+ LRT_MATERIAL_MASK_ENABLED = (1 << 0),
+ LRT_MATERIAL_CUSTOM_OCCLUSION_EFFECTIVENESS = (1 << 1),
} eMaterialLineArtFlags;
typedef struct Material {
diff --git a/source/blender/makesdna/intern/dna_rename_defs.h b/source/blender/makesdna/intern/dna_rename_defs.h
index 84120a54da4..57abf708f60 100644
--- a/source/blender/makesdna/intern/dna_rename_defs.h
+++ b/source/blender/makesdna/intern/dna_rename_defs.h
@@ -134,3 +134,6 @@ DNA_STRUCT_RENAME_ELEM(RigidBodyWorld, steps_per_second, substeps_per_frame)
* global_areas. See D9442. */
DNA_STRUCT_RENAME_ELEM(wmWindow, global_area_map, global_areas)
DNA_STRUCT_RENAME_ELEM(LineartGpencilModifierData, line_types, edge_types)
+DNA_STRUCT_RENAME_ELEM(LineartGpencilModifierData, transparency_flags, material_mask_flags)
+DNA_STRUCT_RENAME_ELEM(LineartGpencilModifierData, transparency_mask, material_mask_bits)
+DNA_STRUCT_RENAME_ELEM(MaterialLineArt, transparency_mask, material_mask_bits)