CompositingProject
ActivePublic

Recent Activity

Mon, Aug 13

Brecht Van Lommel (brecht) added a comment to T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee .

The fact that is has zero alpha outside the object is correct, it's intended to add glow without obscuring anything behind.

Mon, Aug 13, 5:08 PM · Compositing, BF Blender
Yevgeny Makarov (jenkm) added a comment to T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee .

The problem lies elsewhere.

Mon, Aug 13, 4:50 PM · Compositing, BF Blender
Brecht Van Lommel (brecht) added a comment to T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee .

The compositor actually works fine, but the image editor is not displaying it correctly, see T52680.

Mon, Aug 13, 4:28 PM · Compositing, BF Blender
Brecht Van Lommel (brecht) merged task T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee into T52680: Alpha difference Viewport/F12 .
Mon, Aug 13, 4:27 PM · Compositing, BF Blender
Drew Sikes (DTStheTDS) added a comment to T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee .

It might have something to do with it. This was pretty much the closest workaround solution I came up with, even then there's still some compromise. Is it a compositor/viewport problem or is this just normal for some effects in Blender? Sorry, I'm still fairly new to Blender.

Mon, Aug 13, 12:37 PM · Compositing, BF Blender
Bastien Montagne (mont29) assigned T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee to Jeroen Bakker (jbakker).

I guess that’s something to do with premultiplied/straight alpha, @Jeroen Bakker (jbakker) care to check? Thanks.

Mon, Aug 13, 11:33 AM · Compositing, BF Blender
Drew Sikes (DTStheTDS) created T56343: 2.8/2.79 Bug: Glare Effect in Compositing Not Working with Transparency in Cycles/Eevee .
Mon, Aug 13, 4:37 AM · Compositing, BF Blender

Sun, Jul 29

Adam Latchem (adamlatchem) added a comment to T56138: Movie Clip Node Crash.

Excellent - yes fixed now thank you.

Sun, Jul 29, 7:53 PM · Nodes, Compositing, BF Blender: 2.8
Inês Almeida (brita_) closed T56138: Movie Clip Node Crash as Resolved.

Fixed yesterday by rBf50fa4c5
There was a crash on the file selection screen.
Well reported, thank you!

Sun, Jul 29, 7:13 PM · Nodes, Compositing, BF Blender: 2.8
Adam Latchem (adamlatchem) created T56138: Movie Clip Node Crash.
Sun, Jul 29, 12:25 PM · Nodes, Compositing, BF Blender: 2.8

Wed, Jul 18

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

Tue, Jul 17

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

Jul 16 2018

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.
Jul 16 2018, 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.
Jul 16 2018, 1:00 PM · Compositing

Jul 12 2018

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

Cryptomatte support for Cycles is in D3538.

Jul 12 2018, 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.

Jul 12 2018, 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

Jul 12 2018, 5:17 PM · Compositing

Jul 11 2018

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.
Jul 11 2018, 12:35 PM · Compositing
Stefan Werner (swerner) added inline comments to D3531: Compositor: Cryptomatte compositing node..
Jul 11 2018, 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...
Jul 11 2018, 10:46 AM · Compositing
Stefan Werner (swerner) added inline comments to D3531: Compositor: Cryptomatte compositing node..
Jul 11 2018, 10:37 AM · Compositing

Jul 10 2018

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

Looks generally fine, comments inline.

Jul 10 2018, 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?

Jul 10 2018, 2:32 PM · Compositing
Stefan Werner (swerner) added a project to D3531: Compositor: Cryptomatte compositing node.: Compositing.
Jul 10 2018, 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