Feed Advanced Search

Today

Stefan Werner (swerner) closed D3531: Compositor: Cryptomatte compositing node..
Wed, Jul 18, 1:03 PM · Compositing
Stefan Werner (swerner) updated the diff for D3531: Compositor: Cryptomatte compositing node..
  • Reverted an accidental change.
Wed, Jul 18, 1:02 PM · Compositing

Yesterday

Brecht Van Lommel (brecht) accepted D3531: Compositor: Cryptomatte compositing node..

Looks good to me now, besides one accidental change.

Tue, Jul 17, 11:59 PM · Compositing

Mon, Jul 16

Stefan Werner (swerner) updated the diff for D3531: Compositor: Cryptomatte compositing node..
  • Compositor: Fixed Cryptomatte string handling.
  • Compositor: Applied Brecht's UI improvements to Cryptomatte node
  • Compositor: Fixed broken add/remove in Cryptomatte node.
  • Compositor: Raised default number of Crypto inputs to three, as recommended by the Cryptomatte specification.
Mon, Jul 16, 3:47 PM · Compositing
Stefan Werner (swerner) updated the diff for D3531: Compositor: Cryptomatte compositing node..
  • Compositor: Cryptomatte node now uses a dynamic string for matte ids, no more 1024 character limit.
Mon, Jul 16, 1:00 PM · Compositing

Thu, Jul 12

Stefan Werner (swerner) added a comment to D3531: Compositor: Cryptomatte compositing node..

Cryptomatte support for Cycles is in D3538.

Thu, Jul 12, 11:14 PM · Compositing
Brecht Van Lommel (brecht) added a comment to D3531: Compositor: Cryptomatte compositing node..

Also just noticed the matte_id string has a fixed size, with a few dozens objects you already run into that limitation.

Thu, Jul 12, 5:56 PM · Compositing
Brecht Van Lommel (brecht) added a comment to D3531: Compositor: Cryptomatte compositing node..

Here are some UI tweaks on top of the patch, trying to make it a bit easier to understand for first time users.

1diff --git a/source/blender/compositor/nodes/COM_CryptomatteNode.cpp b/source/blender/compositor/nodes/COM_CryptomatteNode.cpp
2index 07d75aa..58eb6d1 100644
3--- a/source/blender/compositor/nodes/COM_CryptomatteNode.cpp
4+++ b/source/blender/compositor/nodes/COM_CryptomatteNode.cpp
5@@ -56,7 +56,7 @@ void CryptomatteNode::convertToOperations(NodeConverter &converter, const Compos
6​ NodeInput *inputSocketImage = this->getInputSocket(0);
7​ NodeOutput *outputSocketImage = this->getOutputSocket(0);
8​ NodeOutput *outputSocketMatte = this->getOutputSocket(1);
9- NodeOutput *outputCryptoPick = this->getOutputSocket(2);
10+ NodeOutput *outputSocketPick = this->getOutputSocket(2);
11
12​ bNode *node = this->getbNode();
13​ NodeCryptomatte *cryptoMatteSettings = (NodeCryptomatte *)node->storage;
14@@ -106,7 +106,7 @@ void CryptomatteNode::convertToOperations(NodeConverter &converter, const Compos
15​ converter.mapInputSocket(inputSocketImage, operationAlpha->getInputSocket(0));
16​ converter.mapOutputSocket(outputSocketMatte, separateOperation->getOutputSocket(0));
17​ converter.mapOutputSocket(outputSocketImage, operationAlpha->getOutputSocket(0));
18- converter.mapOutputSocket(outputCryptoPick, operation->getOutputSocket(0));
19+ converter.mapOutputSocket(outputSocketPick, operation->getOutputSocket(0));
20
21​ converter.addLink(operation->getOutputSocket(0), separateOperation->getInputSocket(0));
22​ converter.addLink(separateOperation->getOutputSocket(0), operationAlpha->getInputSocket(1));
23diff --git a/source/blender/compositor/operations/COM_CryptomatteOperation.cpp b/source/blender/compositor/operations/COM_CryptomatteOperation.cpp
24index 13e23d5..267eb70 100644
25--- a/source/blender/compositor/operations/COM_CryptomatteOperation.cpp
26+++ b/source/blender/compositor/operations/COM_CryptomatteOperation.cpp
27@@ -57,7 +57,7 @@ void CryptomatteOperation::executePixel(float output[4],
28​ /* Write the frontmost object as false color for picking. */
29​ output[0] = input[0];
30​ uint32_t m3hash;
31- ::memcpy(&m3hash, &input[0], 4);
32+ ::memcpy(&m3hash, &input[0], sizeof(uint32_t));
33​ output[1] = ((float) ((m3hash << 8)) / (float) UINT32_MAX);
34​ output[2] = ((float) ((m3hash << 16)) / (float) UINT32_MAX);
35​ }
36diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
37index 2007a0a..eefbeee 100644
38--- a/source/blender/editors/include/UI_interface.h
39+++ b/source/blender/editors/include/UI_interface.h
40@@ -969,7 +969,7 @@ void uiTemplateCurveMapping(
41​ bool levels, bool brush, bool neg_slope);
42​ void uiTemplateColorPicker(uiLayout *layout, struct PointerRNA *ptr, const char *propname, bool value_slider, bool lock, bool lock_luminosity, bool cubic);
43​ void uiTemplatePalette(uiLayout *layout, struct PointerRNA *ptr, const char *propname, bool color);
44-void uiTemplateEyedropper(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
45+void uiTemplateCryptoPicker(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
46​ void uiTemplateLayers(
47​ uiLayout *layout, struct PointerRNA *ptr, const char *propname,
48​ PointerRNA *used_ptr, const char *used_propname, int active_layer);
49diff --git a/source/blender/editors/interface/interface_eyedropper.c b/source/blender/editors/interface/interface_eyedropper.c
50index a073129..67486f3 100644
51--- a/source/blender/editors/interface/interface_eyedropper.c
52+++ b/source/blender/editors/interface/interface_eyedropper.c
53@@ -82,10 +82,10 @@ wmKeyMap *eyedropper_modal_keymap(wmKeyConfig *keyconf)
54​ /* assign to operators */
55​ WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_colorband");
56​ WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_color");
57+ WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_color_crypto");
58​ WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_id");
59​ WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_depth");
60​ WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_driver");
61- WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_color_separate");
62
63​ return keymap;
64​ }
65diff --git a/source/blender/editors/interface/interface_eyedropper_color.c b/source/blender/editors/interface/interface_eyedropper_color.c
66index 6975076..bcb6001 100644
67--- a/source/blender/editors/interface/interface_eyedropper_color.c
68+++ b/source/blender/editors/interface/interface_eyedropper_color.c
69@@ -28,7 +28,6 @@
70​ *
71​ * Defines:
72​ * - #UI_OT_eyedropper_color
73- * - #UI_OT_eyedropper_color_separate
74​ */
75
76​ #include "MEM_guardedalloc.h"
77@@ -37,6 +36,7 @@
78​ #include "DNA_screen_types.h"
79
80​ #include "BLI_math_vector.h"
81+#include "BLI_string.h"
82
83​ #include "BKE_context.h"
84​ #include "BKE_main.h"
85@@ -73,6 +73,8 @@ typedef struct Eyedropper {
86​ bool accum_start; /* has mouse been pressed */
87​ float accum_col[3];
88​ int accum_tot;
89+
90+ bool accumulate; /* Color picking for cryptomatte, without accumulation. */
91​ } Eyedropper;
92
93​ static bool eyedropper_init(bContext *C, wmOperator *op)
94@@ -81,6 +83,7 @@ static bool eyedropper_init(bContext *C, wmOperator *op)
95​ Eyedropper *eye;
96
97​ op->customdata = eye = MEM_callocN(sizeof(Eyedropper), "Eyedropper");
98+ eye->accumulate = !STREQ(op->type->idname, "UI_OT_eyedropper_color_crypto");
99
100​ UI_context_active_but_prop_get(C, &eye->ptr, &eye->prop, &eye->index);
101
102@@ -208,29 +211,30 @@ static void eyedropper_color_set(bContext *C, Eyedropper *eye, const float col[3
103​ RNA_property_update(C, &eye->ptr, eye->prop);
104​ }
105
106-/* set sample from accumulated values */
107-static void eyedropper_color_set_accum(bContext *C, Eyedropper *eye)
108-{
109- float col[3];
110- mul_v3_v3fl(col, eye->accum_col, 1.0f / (float)eye->accum_tot);
111- eyedropper_color_set(C, eye, col);
112-}
113-
114-/* single point sample & set */
115​ static void eyedropper_color_sample(bContext *C, Eyedropper *eye, int mx, int my)
116​ {
117+ /* Accumulate color. */
118​ float col[3];
119​ eyedropper_color_sample_fl(C, mx, my, col);
120- eyedropper_color_set(C, eye, col);
121-}
122
123-static void eyedropper_color_sample_accum(bContext *C, Eyedropper *eye, int mx, int my)
124-{
125- float col[3];
126- eyedropper_color_sample_fl(C, mx, my, col);
127- /* delay linear conversion */
128- add_v3_v3(eye->accum_col, col);
129- eye->accum_tot++;
130+ if (eye->accumulate) {
131+ add_v3_v3(eye->accum_col, col);
132+ eye->accum_tot++;
133+ }
134+ else {
135+ copy_v3_v3(eye->accum_col, col);
136+ eye->accum_tot = 1;
137+ }
138+
139+ /* Apply to property. */
140+ float accum_col[3];
141+ if (eye->accum_tot > 1) {
142+ mul_v3_v3fl(accum_col, eye->accum_col, 1.0f / (float)eye->accum_tot);
143+ }
144+ else {
145+ copy_v3_v3(accum_col, eye->accum_col);
146+ }
147+ eyedropper_color_set(C, eye, accum_col);
148​ }
149
150​ static void eyedropper_cancel(bContext *C, wmOperator *op)
151@@ -255,29 +259,24 @@ static int eyedropper_modal(bContext *C, wmOperator *op, const wmEvent *event)
152​ if (eye->accum_tot == 0) {
153​ eyedropper_color_sample(C, eye, event->x, event->y);
154​ }
155- else {
156- eyedropper_color_set_accum(C, eye);
157- }
158​ eyedropper_exit(C, op);
159​ return OPERATOR_FINISHED;
160​ case EYE_MODAL_SAMPLE_BEGIN:
161​ /* enable accum and make first sample */
162​ eye->accum_start = true;
163- eyedropper_color_sample_accum(C, eye, event->x, event->y);
164+ eyedropper_color_sample(C, eye, event->x, event->y);
165​ break;
166​ case EYE_MODAL_SAMPLE_RESET:
167​ eye->accum_tot = 0;
168​ zero_v3(eye->accum_col);
169- eyedropper_color_sample_accum(C, eye, event->x, event->y);
170- eyedropper_color_set_accum(C, eye);
171+ eyedropper_color_sample(C, eye, event->x, event->y);
172​ break;
173​ }
174​ }
175- else if (event->type == MOUSEMOVE) {
176+ else if (ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE)) {
177​ if (eye->accum_start) {
178​ /* button is pressed so keep sampling */
179- eyedropper_color_sample_accum(C, eye, event->x, event->y);
180- eyedropper_color_set_accum(C, eye);
181+ eyedropper_color_sample(C, eye, event->x, event->y);
182​ }
183​ }
184
185@@ -322,20 +321,9 @@ static int eyedropper_exec(bContext *C, wmOperator *op)
186
187​ static bool eyedropper_poll(bContext *C)
188​ {
189- PointerRNA ptr;
190- PropertyRNA *prop;
191- int index_dummy;
192- uiBut *but;
193-
194- /* Only color buttons */
195- if ((CTX_wm_window(C) != NULL) &&
196- (but = UI_context_active_but_prop_get(C, &ptr, &prop, &index_dummy)) &&
197- (but->type == UI_BTYPE_COLOR))
198- {
199- return 1;
200- }
201-
202- return 0;
203+ /* Actual test for active button happens later, since we don't
204+ * know which one is active until mouse over. */
205+ return (CTX_wm_window(C) != NULL);
206​ }
207
208​ void UI_OT_eyedropper_color(wmOperatorType *ot)
209@@ -354,32 +342,22 @@ void UI_OT_eyedropper_color(wmOperatorType *ot)
210
211​ /* flags */
212​ ot->flag = OPTYPE_BLOCKING | OPTYPE_INTERNAL;
213-
214- /* properties */
215-}
216-
217-static bool eyedropper_separate(bContext *C)
218-{
219- if(!CTX_wm_window(C)) return 0;
220- else return 1;
221​ }
222
223-void UI_OT_eyedropper_color_separate(wmOperatorType *ot)
224+void UI_OT_eyedropper_color_crypto(wmOperatorType *ot)
225​ {
226​ /* identifiers */
227- ot->name = "Eyedropper";
228- ot->idname = "UI_OT_eyedropper_color_separate";
229- ot->description = "Sample a color from the Blender Window to store in a property";
230+ ot->name = "Cryptomatte Eyedropper";
231+ ot->idname = "UI_OT_eyedropper_color_crypto";
232+ ot->description = "Pick a color from Cryptomatte node Pick output image";
233
234​ /* api callbacks */
235​ ot->invoke = eyedropper_invoke;
236​ ot->modal = eyedropper_modal;
237​ ot->cancel = eyedropper_cancel;
238​ ot->exec = eyedropper_exec;
239- ot->poll = eyedropper_separate;
240+ ot->poll = eyedropper_poll;
241
242​ /* flags */
243​ ot->flag = OPTYPE_BLOCKING | OPTYPE_INTERNAL;
244-
245- /* properties */
246​ }
247diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
248index f4ccdde..dc5e100 100644
249--- a/source/blender/editors/interface/interface_intern.h
250+++ b/source/blender/editors/interface/interface_intern.h
251@@ -763,6 +763,7 @@ struct wmKeyMap *eyedropper_colorband_modal_keymap(struct wmKeyConfig *keyconf);
252
253​ /* interface_eyedropper_color.c */
254​ void UI_OT_eyedropper_color(struct wmOperatorType *ot);
255+void UI_OT_eyedropper_color_crypto(struct wmOperatorType *ot);
256
257​ /* interface_eyedropper_colorband.c */
258​ void UI_OT_eyedropper_colorband(struct wmOperatorType *ot);
259@@ -776,6 +777,5 @@ void UI_OT_eyedropper_depth(struct wmOperatorType *ot);
260
261​ /* interface_eyedropper_driver.c */
262​ void UI_OT_eyedropper_driver(struct wmOperatorType *ot);
263-void UI_OT_eyedropper_color_separate(struct wmOperatorType *ot);
264
265​ #endif /* __INTERFACE_INTERN_H__ */
266diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
267index 83f3418..1e67ecd 100644
268--- a/source/blender/editors/interface/interface_ops.c
269+++ b/source/blender/editors/interface/interface_ops.c
270@@ -1138,12 +1138,12 @@ void ED_operatortypes_ui(void)
271
272​ /* external */
273​ WM_operatortype_append(UI_OT_eyedropper_color);
274+ WM_operatortype_append(UI_OT_eyedropper_color_crypto);
275​ WM_operatortype_append(UI_OT_eyedropper_colorband);
276​ WM_operatortype_append(UI_OT_eyedropper_colorband_point);
277​ WM_operatortype_append(UI_OT_eyedropper_id);
278​ WM_operatortype_append(UI_OT_eyedropper_depth);
279​ WM_operatortype_append(UI_OT_eyedropper_driver);
280- WM_operatortype_append(UI_OT_eyedropper_color_separate);
281​ }
282
283​ /**
284diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
285index 029899c..daee0d3 100644
286--- a/source/blender/editors/interface/interface_templates.c
287+++ b/source/blender/editors/interface/interface_templates.c
288@@ -2572,12 +2572,11 @@ void uiTemplatePalette(uiLayout *layout, PointerRNA *ptr, const char *propname,
289​ }
290​ }
291
292-void uiTemplateEyedropper(uiLayout *layout, PointerRNA *ptr, const char *propname)
293+void uiTemplateCryptoPicker(uiLayout *layout, PointerRNA *ptr, const char *propname)
294​ {
295​ PropertyRNA *prop = RNA_struct_find_property(ptr, propname);
296​ uiBlock *block;
297​ uiBut *but;
298- uiLayout *col;
299
300​ if (!prop) {
301​ RNA_warning("property not found: %s.%s", RNA_struct_identifier(ptr->type), propname);
302@@ -2586,11 +2585,7 @@ void uiTemplateEyedropper(uiLayout *layout, PointerRNA *ptr, const char *propnam
303
304​ block = uiLayoutGetBlock(layout);
305
306- col = uiLayoutColumn(layout, true);
307- uiLayoutRow(col, true);
308-
309- uiDefBut(block, UI_BTYPE_LABEL, 0, RNA_property_ui_name(prop), 0, 19, 145, 19, NULL, 0, 0, 0, 0, RNA_property_ui_description(prop));
310- but = uiDefIconButO(block, UI_BTYPE_BUT, "UI_OT_eyedropper_color_separate", WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL);
311+ but = uiDefIconTextButO(block, UI_BTYPE_BUT, "UI_OT_eyedropper_color_crypto", WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, RNA_property_ui_name(prop), 0, 0, UI_UNIT_X, UI_UNIT_Y, RNA_property_ui_description(prop));
312​ but->rnapoin = *ptr;
313​ but->rnaprop = prop;
314​ but->rnaindex = -1;
315diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
316index 55d44a5..d67dbc2 100644
317--- a/source/blender/editors/space_node/drawnode.c
318+++ b/source/blender/editors/space_node/drawnode.c
319@@ -2544,9 +2544,15 @@ static void node_composit_buts_sunbeams(uiLayout *layout, bContext *UNUSED(C), P
320
321​ static void node_composit_buts_cryptomatte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
322​ {
323- uiItemR(layout, ptr, "matte_id", 0, NULL, ICON_NONE);
324- uiTemplateEyedropper(layout, ptr, "add");
325- uiTemplateEyedropper(layout, ptr, "remove");
326+ uiLayout *col = uiLayoutColumn(layout, true);
327+
328+ uiItemL(col, IFACE_("Matte Objects:"), ICON_NONE);
329+
330+ uiLayout *row = uiLayoutRow(col, true);
331+ uiTemplateCryptoPicker(row, ptr, "add");
332+ uiTemplateCryptoPicker(row, ptr, "remove");
333+
334+ uiItemR(col, ptr, "matte_id", 0, "", ICON_NONE);
335​ }
336
337​ static void node_composit_buts_cryptomatte_ex(uiLayout *layout, bContext *UNUSED(C), PointerRNA *UNUSED(ptr))
338diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
339index 0b1aafc..54fc1a4 100644
340--- a/source/blender/makesrna/intern/rna_nodetree.c
341+++ b/source/blender/makesrna/intern/rna_nodetree.c
342@@ -6973,25 +6973,19 @@ static void def_cmp_cryptomatte(StructRNA *srna)
343​ RNA_def_struct_sdna_from(srna, "NodeCryptomatte", "storage");
344​ prop = RNA_def_property(srna, "matte_id", PROP_STRING, PROP_NONE);
345​ RNA_def_property_string_sdna(prop, NULL, "matte_id");
346- RNA_def_property_ui_text(prop, "Matte List", "");
347+ RNA_def_property_ui_text(prop, "Matte Objects", "List of object and material crypto IDs to include in matte");
348​ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
349
350​ prop = RNA_def_property(srna, "add", PROP_FLOAT, PROP_COLOR);
351- RNA_def_property_float_sdna(prop, NULL, "add");
352- RNA_def_property_array(prop, 3);
353​ RNA_def_property_float_array_default(prop, default_1);
354​ RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
355- RNA_def_property_ui_range(prop, 0, 2, 0.1, 3);
356- RNA_def_property_ui_text(prop, "Add", "Add to matte");
357+ RNA_def_property_ui_text(prop, "Add", "Add object or material to matte, by picking a color from the Pick output");
358​ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_NodeCryptomatte_update_add");
359
360​ prop = RNA_def_property(srna, "remove", PROP_FLOAT, PROP_COLOR);
361- RNA_def_property_float_sdna(prop, NULL, "remove");
362- RNA_def_property_array(prop, 3);
363​ RNA_def_property_float_array_default(prop, default_1);
364​ RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
365- RNA_def_property_ui_range(prop, 0, 2, 0.1, 3);
366- RNA_def_property_ui_text(prop, "Remove", "Remove from matte");
367+ RNA_def_property_ui_text(prop, "Remove", "Remove object or material from matte, by picking a color from the Pick output");
368​ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_NodeCryptomatte_update_remove");
369​ }
370
371diff --git a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c
372index 1941f54..0d78053 100644
373--- a/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c
374+++ b/source/blender/nodes/composite/nodes/node_composite_cryptomatte.c
375@@ -195,7 +195,7 @@ static void cryptomatte_remove(NodeCryptomatte*n, float f)
376​ static bNodeSocketTemplate outputs[] = {
377​ { SOCK_RGBA, 0, N_("Image")},
378​ { SOCK_FLOAT, 0, N_("Matte")},
379- { SOCK_RGBA, 0, N_("CryptoPick")},
380+ { SOCK_RGBA, 0, N_("Pick")},
381​ { -1, 0, "" }
382​ };
383

Thu, Jul 12, 5:17 PM · Compositing

Wed, Jul 11

Stefan Werner (swerner) updated the diff for D3531: Compositor: Cryptomatte compositing node..
  • More code styling changes in Cryptomatte compositing node.
  • Code styling and warning suppression in murmur3 hash.
  • Removed unused code.
Wed, Jul 11, 12:35 PM · Compositing
Stefan Werner (swerner) added inline comments to D3531: Compositor: Cryptomatte compositing node..
Wed, Jul 11, 10:58 AM · Compositing
Stefan Werner (swerner) updated the diff for D3531: Compositor: Cryptomatte compositing node..

x - Compositor: Addressed Brecht's comments for Cryptomatte node.

  • Compositor: Added static sizeof() checks before type punning. Currently, sizeof(float) == 4 on all of our supported platforms, but the standards don't require that. You never know...
Wed, Jul 11, 10:46 AM · Compositing
Stefan Werner (swerner) added inline comments to D3531: Compositor: Cryptomatte compositing node..
Wed, Jul 11, 10:37 AM · Compositing

Tue, Jul 10

Brecht Van Lommel (brecht) requested changes to D3531: Compositor: Cryptomatte compositing node..

Looks generally fine, comments inline.

Tue, Jul 10, 3:09 PM · Compositing
Stefan Werner (swerner) added a comment to D3531: Compositor: Cryptomatte compositing node..

This is a patch against the current master. Should I rather rebase this on top of the 2.8 branch?

Tue, Jul 10, 2:32 PM · Compositing
Stefan Werner (swerner) added a project to D3531: Compositor: Cryptomatte compositing node.: Compositing.
Tue, Jul 10, 2:30 PM · Compositing

May 14 2018

Philipp Oeser (lichtwerk) assigned T55040: Blur Node Breaks on High Scene Referred Values to Jeroen Bakker (jbakker).

Note that Fast Gaussian doesnt suffer so badly...
Dont know the Compositor well, @Jeroen Bakker (jbakker): mind having a look?

May 14 2018, 1:56 PM · BF Blender, Compositing

May 7 2018

Sergey Sharybin (sergey) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

Those coefficients are localizable to a pixel neighborhood. You can calculate them for the tile, and toss them away once the tile is handled.

May 7 2018, 12:18 PM · Compositing, BF Blender

May 2 2018

Philipp Oeser (lichtwerk) added a project to T54716: Corner Pin adds blur to an input image?: Compositing.
May 2 2018, 1:56 PM · Compositing, BF Blender

Apr 30 2018

Troy Sobotka (sobotka) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

The coefficients are derived by looping through the entire horizontal and vertical rows and columns of data.

Apr 30 2018, 5:16 PM · Compositing, BF Blender
Sergey Sharybin (sergey) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

You don't need whole buffer, you only need tile. As i've said before, have a look at initializeTileData.

Apr 30 2018, 10:13 AM · Compositing, BF Blender
Eduardo Schilling (elschilling) added a watcher for Compositing: Eduardo Schilling (elschilling).
Apr 30 2018, 1:57 AM

Apr 29 2018

Troy Sobotka (sobotka) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

The sampling algorithm and implementation is to be formulated in a terms that does not need require the whole buffer.

Apr 29 2018, 8:48 PM · Compositing, BF Blender
Sergey Sharybin (sergey) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

The sampling algorithm and implementation is to be formulated in a terms that does not need require the whole buffer.

Apr 29 2018, 5:59 PM · Compositing, BF Blender
Troy Sobotka (sobotka) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

You must not duplicate whole buffer, limit it to the tile only.

Apr 29 2018, 5:31 PM · Compositing, BF Blender

Apr 25 2018

Philipp Oeser (lichtwerk) changed Type from Bug to To Do on T54182: File Output node doesn't keep layer names when switched to Multilayer EXR.
Apr 25 2018, 1:59 PM · Compositing, BF Blender
Philipp Oeser (lichtwerk) claimed T54182: File Output node doesn't keep layer names when switched to Multilayer EXR.

Like @Jeroen Bakker (jbakker) said: layer name and File Subpath are not interchangable.
A File Output node comes with one input by default (which is called "Image")
What happens when you Add Input for the File Output node is that unique new names get reserved for a new layer and a new File Subpath
So you have a new File Subpath called "Image_001" and a new layer called "Image_001"
When you rename one of them, the other wont get synched

Apr 25 2018, 1:59 PM · Compositing, BF Blender

Apr 3 2018

Jeroen Bakker (jbakker) added a comment to T54182: File Output node doesn't keep layer names when switched to Multilayer EXR.

Layer names and file subpaths are not interchangeable.

Apr 3 2018, 2:23 PM · Compositing, BF Blender

Mar 30 2018

vasfi (vgumus) created T54465: Color Sample From Second Monitor Always Return Black Color.
Mar 30 2018, 1:27 PM · Compositing, BF Blender

Mar 17 2018

LazyDodo (LazyDodo) closed T54305: Inpaint Node pixelates Image as Archived.

The pixelation is caused by the scale operation , the scaled down bitmap will be used as the source for the inpaint operation (or blur or any other operation that'll work on pixels) and once processed can not be scaled up while maintaining the original resolution, this is working as expected, not a bug.

Mar 17 2018, 3:28 AM · Compositing, BF Blender

Mar 13 2018

Serge Lyatin (SergeL) created T54305: Inpaint Node pixelates Image.
Mar 13 2018, 11:32 AM · Compositing, BF Blender

Mar 5 2018

Sergey Sharybin (sergey) closed T54225: Blur node stopped working when Map Range was fed with image as Resolved by committing rB63d8ccf9ffb1: Fix T54225: Blur node stopped working when Map Range was fed with image.
Mar 5 2018, 11:47 AM · Compositing, BF Blender

Mar 4 2018

Serge Lyatin (SergeL) created T54225: Blur node stopped working when Map Range was fed with image.
Mar 4 2018, 3:24 PM · Compositing, BF Blender

Feb 27 2018

Serge Lyatin (SergeL) created T54182: File Output node doesn't keep layer names when switched to Multilayer EXR.
Feb 27 2018, 10:04 AM · Compositing, BF Blender

Feb 7 2018

Frank Meier (doe) added a comment to T53790: Design Doc: Sample based compositor.

I think you missed an important point regarding the editing performance:

Feb 7 2018, 7:25 PM · Compositing, BF Blender

Jan 23 2018

Jeroen Bakker (jbakker) added a comment to T53790: Design Doc: Sample based compositor.

Hi Brecht!

Jan 23 2018, 3:15 PM · Compositing, BF Blender

Jan 16 2018

Brecht Van Lommel (brecht) triaged T53790: Design Doc: Sample based compositor as Normal priority.
Jan 16 2018, 4:46 AM · Compositing, BF Blender
Brecht Van Lommel (brecht) added a comment to T53790: Design Doc: Sample based compositor.

So if I understand this correctly, the idea is to handle one sample at a time, using Monte Carlo sampling for operations like blur. The advantage of that is that it simplifies the implementation, as every sample can be handled individually, in a single kernel execution. As a result it may also be easier to optimize than a more complicated implementation that theoretically could be faster but isn't. It also naturally provides a progressive preview. "Monte Carlo compositing" is a very interesting idea and I hadn't realised this was the plan.

Jan 16 2018, 4:46 AM · Compositing, BF Blender

Jan 15 2018

Michael P. (forest-house) added a comment to T53790: Design Doc: Sample based compositor.

So the user can add a viewport "object" to the scene, which is a image buffer "dump":

  1. buffer of a input node (image, movie, etc.)?
  2. buffer of a texture node?
  3. buffer of a output node, i.e. a different compositing output?
  4. buffer of another scene (OpenGL / Eevee / Cycles Render)?
Jan 15 2018, 11:28 PM · Compositing, BF Blender
Aaron Carlisle (Blendify) added a comment to D3003: PoC: Sample based compositor.

Please don't remove whitespace it makes looking for real changes and nightmare

Jan 15 2018, 10:56 PM · BF Blender: 2.8, Compositing
Francesco Siddi (fsiddi) added a comment to D3003: PoC: Sample based compositor.

Very interesting! I checked it out (both compositor-2106 and compositor-2016-macosand on macOS it simply crashes after basic interaction (plugging in a viewer node). Attached you find some logs, I hope it helps.

Jan 15 2018, 3:21 PM · BF Blender: 2.8, Compositing
Jeroen Bakker (jbakker) updated the summary of D3003: PoC: Sample based compositor.
Jan 15 2018, 2:29 PM · BF Blender: 2.8, Compositing
Jeroen Bakker (jbakker) retitled D3003: PoC: Sample based compositor from Design Doc: Sample based compositor to PoC: Sample based compositor.
Jan 15 2018, 2:20 PM · BF Blender: 2.8, Compositing
Jeroen Bakker (jbakker) added a task to D3003: PoC: Sample based compositor: T53790: Design Doc: Sample based compositor.
Jan 15 2018, 2:19 PM · BF Blender: 2.8, Compositing
Jeroen Bakker (jbakker) added a revision to T53790: Design Doc: Sample based compositor: D3003: PoC: Sample based compositor.
Jan 15 2018, 2:19 PM · Compositing, BF Blender
Jeroen Bakker (jbakker) changed Type from Bug to Design on T53790: Design Doc: Sample based compositor.
Jan 15 2018, 2:19 PM · Compositing, BF Blender
Jeroen Bakker (jbakker) created T53790: Design Doc: Sample based compositor.
Jan 15 2018, 2:18 PM · Compositing, BF Blender
Jeroen Bakker (jbakker) added a reviewer for D3003: PoC: Sample based compositor: Compositing.
Jan 15 2018, 2:03 PM · BF Blender: 2.8, Compositing
Jeroen Bakker (jbakker) created D3003: PoC: Sample based compositor.
Jan 15 2018, 2:01 PM · BF Blender: 2.8, Compositing

Jan 10 2018

Campbell Barton (campbellbarton) closed T53747: Inpaint doesn't work with transparent pixels as Invalid.

Currently the alpha needs to be 1.0 to inpaint,
We could add a threshold option, but this isn't a bug.

Jan 10 2018, 4:25 AM · Compositing, BF Blender
Serge Lyatin (SergeL) created T53747: Inpaint doesn't work with transparent pixels.
Jan 10 2018, 12:15 AM · Compositing, BF Blender

Jan 9 2018

Sergey Sharybin (sergey) requested changes to D2984: Add Cubic B-Spline with Prefilter Algorithm.

While this might be handy to have, the implementation goes against compositor design:

Jan 9 2018, 10:38 AM · Compositing, BF Blender
Troy Sobotka (sobotka) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

If you can't tell the difference, it may not be working correctly. Should be as clearly apparent as in https://youtu.be/nfhTET86kdE

Jan 9 2018, 7:18 AM · Compositing, BF Blender
Campbell Barton (campbellbarton) added a comment to D2984: Add Cubic B-Spline with Prefilter Algorithm.

Not really happy with how this patch requires a copy of the image (goes against compositor design).

Jan 9 2018, 6:47 AM · Compositing, BF Blender
Campbell Barton (campbellbarton) updated the diff for D2984: Add Cubic B-Spline with Prefilter Algorithm.
  • Cleanup
Jan 9 2018, 6:44 AM · Compositing, BF Blender
Campbell Barton (campbellbarton) updated the diff for D2984: Add Cubic B-Spline with Prefilter Algorithm.
  • Update so this now compiles
Jan 9 2018, 6:21 AM · Compositing, BF Blender

Jan 6 2018

Brecht Van Lommel (brecht) closed D2981: Fix Luma Matte Node not allowing displaying display referred values.
Jan 6 2018, 4:44 PM · Compositing, BF Blender
Brecht Van Lommel (brecht) closed D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.
Jan 6 2018, 4:44 PM · Compositing, BF Blender

Jan 2 2018

Aaron Carlisle (Blendify) planned changes to D2984: Add Cubic B-Spline with Prefilter Algorithm.
Jan 2 2018, 5:24 PM · Compositing, BF Blender

Jan 1 2018

Aaron Carlisle (Blendify) updated the diff for D2984: Add Cubic B-Spline with Prefilter Algorithm.

Update with arc

Jan 1 2018, 11:19 PM · Compositing, BF Blender
Aaron Carlisle (Blendify) created D2984: Add Cubic B-Spline with Prefilter Algorithm.
Jan 1 2018, 10:39 PM · Compositing, BF Blender
Fable Fox (fablefox) closed T53591: Composite node result is different from Viewer and File Output (Plane Track Deform) as Invalid.

Close as requested.

Jan 1 2018, 1:09 PM · Compositing, Motion Tracking, BF Blender
Brecht Van Lommel (brecht) accepted D2981: Fix Luma Matte Node not allowing displaying display referred values.
Jan 1 2018, 3:19 AM · Compositing, BF Blender
Brecht Van Lommel (brecht) accepted D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.

The node is called Luminance Key and its purpose is similar to other keying nodes: creating a matte.

Jan 1 2018, 3:16 AM · Compositing, BF Blender
Brecht Van Lommel (brecht) updated the diff for D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.

Update to fix discarding of alpha, also fixes incorrect comment.

Jan 1 2018, 3:16 AM · Compositing, BF Blender
Aaron Carlisle (Blendify) updated the diff for D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.

Correct tab size

Jan 1 2018, 12:23 AM · Compositing, BF Blender
Aaron Carlisle (Blendify) updated the diff for D2981: Fix Luma Matte Node not allowing displaying display referred values.

Remove calls to RNA_def_property_range

Jan 1 2018, 12:14 AM · Compositing, BF Blender
Aaron Carlisle (Blendify) updated the summary of D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.
Jan 1 2018, 12:09 AM · Compositing, BF Blender

Dec 31 2017

Aaron Carlisle (Blendify) added a comment to D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.

@Brecht Van Lommel (brecht) I am a little confused by this because that is not what this node is designed for.
It is not a keying node but a matte node used to remove high or low contrast pieces of an image.
Also, the fact that it might look different should not matter. All this patch is fixing something that
was missed in rBdd38dce7f0ae604396d1e96bc49500369fdedf29

Dec 31 2017, 10:41 PM · Compositing, BF Blender
Troy Sobotka (sobotka) added a comment to D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.

How about we just close this and rename the node to "Doesn't do what the node label is supposed to do" node, then we won't need to commit the three line patch.

Dec 31 2017, 8:46 PM · Compositing, BF Blender
Brecht Van Lommel (brecht) added a comment to D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.

The question from @Sergey Sharybin (sergey) in T47212 was to verify if this node still works equally well on actual green screen footage, like the one from Tears of Steel. Did you try that?

Dec 31 2017, 1:57 PM · Compositing, BF Blender
Brecht Van Lommel (brecht) added a comment to D2981: Fix Luma Matte Node not allowing displaying display referred values.

Looks fine to me, but remove the calls to RNA_def_property_range since they are just setting the default again.

Dec 31 2017, 1:54 PM · Compositing, BF Blender
Aaron Carlisle (Blendify) updated the summary of D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.
Dec 31 2017, 3:19 AM · Compositing, BF Blender
Aaron Carlisle (Blendify) added reviewers for D2982: Fix T47212: Use proper coefficients for Luminance Matte Node: Brecht Van Lommel (brecht), Lukas Stockner (lukasstockner97).
Dec 31 2017, 1:48 AM · Compositing, BF Blender
Aaron Carlisle (Blendify) created D2982: Fix T47212: Use proper coefficients for Luminance Matte Node.
Dec 31 2017, 1:47 AM · Compositing, BF Blender

Dec 30 2017

Aaron Carlisle (Blendify) updated the diff for D2981: Fix Luma Matte Node not allowing displaying display referred values.

Fix wrong max ui max value

Dec 30 2017, 11:21 PM · Compositing, BF Blender
Aaron Carlisle (Blendify) updated the summary of D2981: Fix Luma Matte Node not allowing displaying display referred values.
Dec 30 2017, 11:19 PM · Compositing, BF Blender
Aaron Carlisle (Blendify) created D2981: Fix Luma Matte Node not allowing displaying display referred values.
Dec 30 2017, 11:19 PM · Compositing, BF Blender

Dec 26 2017

Phillip Thomas (philliptee) added a watcher for Compositing: Phillip Thomas (philliptee).
Dec 26 2017, 3:32 PM

Dec 20 2017

Serge Lyatin (SergeL) added a comment to T53591: Composite node result is different from Viewer and File Output (Plane Track Deform).

Well, on the fresh head, it seems that I want impossible thing. I should rather render scene in 20% and then Composite it with 100% resolution, or stick with File Output. So close it down.

Dec 20 2017, 11:02 AM · Compositing, Motion Tracking, BF Blender
Sergey Sharybin (sergey) triaged T53591: Composite node result is different from Viewer and File Output (Plane Track Deform) as Incomplete priority.

I don't see difference between viewer node and file output. Only difference is between render result and file output, but that's because using lower resolution for final render acts like a "canvas" thing. It does not scale anything up or down. For that you can use Scale node est to "Render Size" mode.

Dec 20 2017, 10:44 AM · Compositing, Motion Tracking, BF Blender

Dec 19 2017

Serge Lyatin (SergeL) created T53591: Composite node result is different from Viewer and File Output (Plane Track Deform).
Dec 19 2017, 5:41 PM · Compositing, Motion Tracking, BF Blender

Dec 7 2017

Sybren A. Stüvel (sybren) resigned from D2945: Issue T53321 resolved.
Dec 7 2017, 3:56 PM · Compositing, BF Blender

Dec 6 2017

Sergey Sharybin (sergey) requested changes to D2945: Issue T53321 resolved.

What i'm afraid here is that applying this fix will break files created after the buggy commit was done before this fix is applied. Probably some do-versions is required.

Dec 6 2017, 2:36 PM · Compositing, BF Blender
José Luis Oliveira Cunha (JoseCunha) added a task to D2945: Issue T53321 resolved: T53321: "Z" changed to "depth" breaks consistency in compositing and in Render layers.
Dec 6 2017, 1:46 PM · Compositing, BF Blender
José Luis Oliveira Cunha (JoseCunha) created D2945: Issue T53321 resolved.
Dec 6 2017, 1:26 PM · Compositing, BF Blender

Nov 24 2017

Bastien Montagne (mont29) raised the priority of T53178: Blur node from Incomplete to Confirmed.
Nov 24 2017, 10:02 AM · BF Blender, Compositing

Nov 23 2017

Brecht Van Lommel (brecht) triaged T53293: Transform node with bicubic filtering distorts image as Normal priority.

This is what a plain bicubic filter is expected to do. The filter area for a bilinear filter is exactly 1 pixel, and so there will be no influence from neighboring pixels if the image is not transformed and the pixel centers are aligned properly. A bicubic filter has a larger filter area and will blur the image.

Nov 23 2017, 8:36 PM · Compositing, BF Blender

Nov 20 2017

Jeroen Bakker (jbakker) added a comment to T53293: Transform node with bicubic filtering distorts image.

Even in cycles you see a difference. I thing that the difference is by what is determined as the dead center of the pixel coordinate. (lower left verses precise center). But will need more testing (if this is the case) and discussion about what should be the correct implementation.

Nov 20 2017, 9:45 AM · Compositing, BF Blender

Nov 12 2017

Joel Godin (FloridaJo) added a comment to T53293: Transform node with bicubic filtering distorts image.

I see that too.
Don't know enough about nodes to know if its a bug or not.

Nov 12 2017, 12:45 PM · Compositing, BF Blender

Nov 10 2017

Serge Lyatin (SergeL) created T53293: Transform node with bicubic filtering distorts image.
Nov 10 2017, 4:43 PM · Compositing, BF Blender

Nov 7 2017

Brecht Van Lommel (brecht) added a comment to T52487: Blender unstable when using GPU Compute in any situation.

Closing as duplicate of another bug. It's still a mystery why some users are having this problem, we're trying to figure it out.

Nov 7 2017, 3:44 AM · Compositing, BF Blender
Brecht Van Lommel (brecht) merged task T52487: Blender unstable when using GPU Compute in any situation into T52572: CUDA Illegal address errors Windows.
Nov 7 2017, 3:44 AM · Compositing, BF Blender

Nov 5 2017

Michael P. (forest-house) updated subscribers of D2493: Compositor: Add Distance Transform Node.

Any progress here? I ask, because this is a useful feature. And there seems to be no activity here.
@Sean Kennedy (hype) Maybe interesting for you too. :-)

Nov 5 2017, 12:34 PM · Compositing
Michael P. (forest-house) added a comment to D2411: Compositor: Add Anti-Aliasing node.
Nov 5 2017, 12:31 PM · Compositing
Michael P. (forest-house) added a comment to D2411: Compositor: Add Anti-Aliasing node.

Any progress here? I ask, because this is a useful feature. And there seems to be no activity here.

Nov 5 2017, 12:30 PM · Compositing

Oct 31 2017

Jeroen Bakker (jbakker) added a comment to T53178: Blur node.

The only difference I see on my system is that the width of the relative blur is one pixel less. This behavior is that the percentage is rounded by casting the percentage (float) to an int.

Oct 31 2017, 11:42 AM · BF Blender, Compositing

Oct 30 2017

Serge Lyatin (SergeL) added a comment to T53178: Blur node.

With provided file I can see the difference on WIN7 64bit. But if set blur percentage at 0.6 for both axis and choose Y correction, then I see no difference.

Oct 30 2017, 5:13 PM · BF Blender, Compositing

Oct 28 2017

ronan ducluzeau (zeauro) added a comment to T53178: Blur node.

Well. I see no difference in .blend file under linux.
Maybe the bug is specific to platform.

Oct 28 2017, 6:29 PM · BF Blender, Compositing

Oct 27 2017

Denis (dns_di) added a comment to T53178: Blur node.

here

Oct 27 2017, 1:57 PM · BF Blender, Compositing
ronan ducluzeau (zeauro) triaged T53178: Blur node as Incomplete priority.

Do you mean that there is a problem with aspect correction ?

Oct 27 2017, 11:38 AM · BF Blender, Compositing