[Bf-blender-cvs] [0b0237b1537] compositor-cryptomatte-workflow: Added legacy workflow back.
Jeroen Bakker
noreply at git.blender.org
Wed Mar 10 15:03:39 CET 2021
Commit: 0b0237b15370759e0751e23b160f43e852c180a7
Author: Jeroen Bakker
Date: Wed Mar 10 15:03:16 2021 +0100
Branches: compositor-cryptomatte-workflow
https://developer.blender.org/rB0b0237b15370759e0751e23b160f43e852c180a7
Added legacy workflow back.
===================================================================
M release/scripts/startup/nodeitems_builtins.py
M source/blender/blenkernel/BKE_node.h
M source/blender/blenkernel/intern/node.cc
M source/blender/blenloader/intern/versioning_290.c
M source/blender/compositor/intern/COM_Converter.cc
M source/blender/compositor/nodes/COM_CryptomatteNode.cc
M source/blender/compositor/nodes/COM_CryptomatteNode.h
M source/blender/editors/interface/interface_eyedropper_color.c
M source/blender/editors/space_node/drawnode.c
M source/blender/editors/space_node/node_edit.c
M source/blender/editors/space_node/node_intern.h
M source/blender/editors/space_node/node_ops.c
M source/blender/makesdna/DNA_node_types.h
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/rna_nodetree.c
M source/blender/nodes/NOD_composite.h
M source/blender/nodes/NOD_static_types.h
M source/blender/nodes/composite/nodes/node_composite_cryptomatte.cc
===================================================================
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 83e72e6f84c..35ca6b82066 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -203,36 +203,53 @@ shader_node_categories = [
NodeItem("NodeGroupInput", poll=group_input_output_item_poll),
]),
ShaderNodeCategory("SH_NEW_OUTPUT", "Output", items=[
- NodeItem("ShaderNodeOutputMaterial", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeOutputLight", poll=object_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeOutputMaterial",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeOutputLight",
+ poll=object_cycles_shader_nodes_poll),
NodeItem("ShaderNodeOutputAOV"),
NodeItem("ShaderNodeOutputWorld", poll=world_shader_nodes_poll),
- NodeItem("ShaderNodeOutputLineStyle", poll=line_style_shader_nodes_poll),
+ NodeItem("ShaderNodeOutputLineStyle",
+ poll=line_style_shader_nodes_poll),
NodeItem("NodeGroupOutput", poll=group_input_output_item_poll),
]),
ShaderNodeCategory("SH_NEW_SHADER", "Shader", items=[
NodeItem("ShaderNodeMixShader", poll=eevee_cycles_shader_nodes_poll),
NodeItem("ShaderNodeAddShader", poll=eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfDiffuse", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfPrincipled", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfGlossy", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfTransparent", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfRefraction", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfGlass", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfTranslucent", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfAnisotropic", poll=object_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfDiffuse",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfPrincipled",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfGlossy",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfTransparent",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfRefraction",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfGlass",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfTranslucent",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfAnisotropic",
+ poll=object_cycles_shader_nodes_poll),
NodeItem("ShaderNodeBsdfVelvet", poll=object_cycles_shader_nodes_poll),
NodeItem("ShaderNodeBsdfToon", poll=object_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeSubsurfaceScattering", poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeSubsurfaceScattering",
+ poll=object_eevee_cycles_shader_nodes_poll),
NodeItem("ShaderNodeEmission", poll=eevee_cycles_shader_nodes_poll),
NodeItem("ShaderNodeBsdfHair", poll=object_cycles_shader_nodes_poll),
NodeItem("ShaderNodeBackground", poll=world_shader_nodes_poll),
- NodeItem("ShaderNodeHoldout", poll=object_eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeVolumeAbsorption", poll=eevee_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeVolumeScatter", poll=eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeHoldout",
+ poll=object_eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeVolumeAbsorption",
+ poll=eevee_cycles_shader_nodes_poll),
+ NodeItem("ShaderNodeVolumeScatter",
+ poll=eevee_cycles_shader_nodes_poll),
NodeItem("ShaderNodeVolumePrincipled"),
- NodeItem("ShaderNodeEeveeSpecular", poll=object_eevee_shader_nodes_poll),
- NodeItem("ShaderNodeBsdfHairPrincipled", poll=object_cycles_shader_nodes_poll)
+ NodeItem("ShaderNodeEeveeSpecular",
+ poll=object_eevee_shader_nodes_poll),
+ NodeItem("ShaderNodeBsdfHairPrincipled",
+ poll=object_cycles_shader_nodes_poll)
]),
ShaderNodeCategory("SH_NEW_TEXTURE", "Texture", items=[
NodeItem("ShaderNodeTexImage"),
@@ -389,6 +406,7 @@ compositor_node_categories = [
NodeItem("CompositorNodeColorMatte"),
NodeItem("CompositorNodeDoubleEdgeMask"),
NodeItem("CompositorNodeCryptomatte"),
+ NodeItem("CompositorNodeCryptomatteV2"),
]),
CompositorNodeCategory("CMP_DISTORT", "Distort", items=[
NodeItem("CompositorNodeScale"),
@@ -557,9 +575,12 @@ geometry_node_categories = [
def register():
nodeitems_utils.register_node_categories('SHADER', shader_node_categories)
- nodeitems_utils.register_node_categories('COMPOSITING', compositor_node_categories)
- nodeitems_utils.register_node_categories('TEXTURE', texture_node_categories)
- nodeitems_utils.register_node_categories('GEOMETRY', geometry_node_categories)
+ nodeitems_utils.register_node_categories(
+ 'COMPOSITING', compositor_node_categories)
+ nodeitems_utils.register_node_categories(
+ 'TEXTURE', texture_node_categories)
+ nodeitems_utils.register_node_categories(
+ 'GEOMETRY', geometry_node_categories)
def unregister():
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 905b4f611b8..a6a777523c2 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -1205,9 +1205,10 @@ void ntreeGPUMaterialNodes(struct bNodeTree *localtree,
#define CMP_NODE_PLANETRACKDEFORM 320
#define CMP_NODE_CORNERPIN 321
#define CMP_NODE_SWITCH_VIEW 322
-#define CMP_NODE_CRYPTOMATTE 323
+#define CMP_NODE_CRYPTOMATTE_LEGACY 323
#define CMP_NODE_DENOISE 324
#define CMP_NODE_EXPOSURE 325
+#define CMP_NODE_CRYPTOMATTE 326
/* channel toggles */
#define CMP_CHAN_RGB 1
@@ -1285,6 +1286,8 @@ void ntreeCompositColorBalanceSyncFromCDL(bNodeTree *ntree, bNode *node);
void ntreeCompositCryptomatteSyncFromAdd(bNode *node);
void ntreeCompositCryptomatteSyncFromRemove(bNode *node);
+bNodeSocket *ntreeCompositCryptomatteAddSocket(bNodeTree *ntree, bNode *node);
+int ntreeCompositCryptomatteRemoveSocket(bNodeTree *ntree, bNode *node);
const char *ntreeCompositCryptomatteLayerPrefix(const bNode *node);
/* Update the runtime layer names with the cryptomatte layer names of the references
* render layer or image. */
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index 60a2a8c465d..91deb2d3de6 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -538,7 +538,8 @@ void ntreeBlendWrite(BlendWriter *writer, bNodeTree *ntree)
}
BLO_write_struct_by_name(writer, node->typeinfo->storagename, node->storage);
}
- else if ((ntree->type == NTREE_COMPOSIT) && (node->type == CMP_NODE_CRYPTOMATTE)) {
+ else if ((ntree->type == NTREE_COMPOSIT) &&
+ (ELEM(node->type, CMP_NODE_CRYPTOMATTE, CMP_NODE_CRYPTOMATTE_LEGACY))) {
NodeCryptomatte *nc = (NodeCryptomatte *)node->storage;
BLO_write_string(writer, nc->matte_id);
LISTBASE_FOREACH (CryptomatteEntry *, entry, &nc->entries) {
@@ -703,6 +704,7 @@ void ntreeBlendReadData(BlendDataReader *reader, bNodeTree *ntree)
iuser->scene = nullptr;
break;
}
+ case CMP_NODE_CRYPTOMATTE_LEGACY:
case CMP_NODE_CRYPTOMATTE: {
NodeCryptomatte *nc = (NodeCryptomatte *)node->storage;
BLO_read_data_address(reader, &nc->matte_id);
@@ -4605,6 +4607,7 @@ static void registerCompositNodes()
register_node_type_cmp_keyingscreen();
register_node_type_cmp_keying();
register_node_type_cmp_cryptomatte();
+ register_node_type_cmp_cryptomatte_legacy();
register_node_type_cmp_translate();
register_node_type_cmp_rotate();
@@ -4972,19 +4975,12 @@ void BKE_nodetree_remove_layer_n(bNodeTree *ntree, Scene *scene, const int layer
{
BLI_assert(layer_index != -1);
LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
- /* Check whether this node references layers. */
- short *node_index = nullptr;
if (node->type == CMP_NODE_R_LAYERS && (Scene *)node->id == scene) {
- node_index = &node->custom1;
- }
-
- /* If it does, ensure that it remains valid. */
- if (node_index) {
- if (*node_index == layer_index) {
- *node_index = 0;
+ if (node->custom1 == layer_index) {
+ node->custom1 = 0;
}
- else if (*node_index > layer_index) {
- *node_index -= 1;
+ else if (node->custom1 > layer_index) {
+ node->custom1--;
}
}
}
diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c
index 8cf840f665b..37a704f45b9 100644
--- a/source/blender/blenloader/intern/versioning_290.c
+++ b/source/blender/blenloader/intern/versioning_290.c
@@ -1462,7 +1462,7 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
if (scene->nodetree) {
LISTBASE_FOREACH (bNode *, node, &scene->nodetree->nodes) {
- if (node->type == CMP_NODE_CRYPTOMATTE) {
+ if (node->type == CMP_NODE_CRYPTOMATTE_LEGACY) {
NodeCryptomatte *storage = (NodeCryptomatte *)node->storage;
char *matte_id = storage->matte_id;
if (matte_id == NULL || strlen(storage->matte_id) == 0) {
diff --git a/source/blender/compositor/intern/COM_Converter.cc b/source/blender/compositor/intern/COM_Converter.cc
index 7d897d29576..91439f54710 100644
--- a/source/blender/compositor/intern
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list