CompositingProject
ActivePublic

Recent Activity

Today

Shinsuke Irie (irie) created T56875: Compositor: Auto Render doesn't work.
Sat, Sep 22, 6:17 AM · Compositing, BF Blender

Mon, Sep 17

Bastien Montagne (mont29) assigned T56799: "Save Buffers" doesn't allow saving the volume passes to Brecht Van Lommel (brecht).

It’s not saved because there is no data at all (as can be checked with a viewer node), for both volume passes, when Save Buffer is enabled. @Brecht Van Lommel (brecht), guess that one is for you?

Mon, Sep 17, 10:42 AM · Compositing, Cycles, BF Blender

Fri, Sep 14

Andy (DeepBlender) created T56799: "Save Buffers" doesn't allow saving the volume passes.
Fri, Sep 14, 2:08 PM · Compositing, Cycles, BF Blender

Wed, Sep 12

Alex P (eneen) added a comment to T56772: File Output node is missing "Save as render" option.

Thank you! As usual I can help with testing.
If new color management will not get into 2.8, this will surely make it more flexible.

Wed, Sep 12, 12:05 PM · BF Blender, Compositing
Sergey Sharybin (sergey) closed T56772: File Output node is missing "Save as render" option as Archived.

Thanks for the report, but this is a known limitation. One day we would need to implement more proper color management and such for file output (including manual saving from the editor, render output, nodes...). For until then considering it a TODO.

Wed, Sep 12, 10:44 AM · BF Blender, Compositing
Bastien Montagne (mont29) assigned T56772: File Output node is missing "Save as render" option to Sergey Sharybin (sergey).

Sounds more like a TODO and/or known limitation, @Sergey Sharybin (sergey)? Also, do not see anything specific to 2.8, afaik 2.7 does not have that option either.

Wed, Sep 12, 10:17 AM · BF Blender, Compositing
Alex P (eneen) updated the task description for T56772: File Output node is missing "Save as render" option.
Wed, Sep 12, 9:17 AM · BF Blender, Compositing
Alex P (eneen) created T56772: File Output node is missing "Save as render" option.
Wed, Sep 12, 9:07 AM · BF Blender, Compositing

Thu, Sep 6

Sean Kennedy (hype) added a comment to D2493: Compositor: Add Distance Transform Node.

This is interesting, for sure. I'm not sure that in a typical compositing workflow if it would be extremely useful, but from the examples posted, it certainly looks like you can do some very artsy, creative stuff with it.

Thu, Sep 6, 6:10 AM · Compositing

Mon, Sep 3

Beau Gerbrands (Beaug) added a comment to T56664: Clamping Direct/Indirect Should be Renderlayer Specific Instead of General Render Setting.

Thanks guys :)

Mon, Sep 3, 4:40 PM · Cycles, Compositing, Rendering, BF Blender
Brecht Van Lommel (brecht) closed T56664: Clamping Direct/Indirect Should be Renderlayer Specific Instead of General Render Setting as Archived.

This is indeed a feature request, that is planned to be solved in the future with overrides in 2.8. The other thing is that we should add support for a world position pass at some point.

Mon, Sep 3, 4:37 PM · Cycles, Compositing, Rendering, BF Blender
Sergey Sharybin (sergey) added a comment to T56664: Clamping Direct/Indirect Should be Renderlayer Specific Instead of General Render Setting.

Well, this is like trying to simulate data pass with a light setup, which is already kind of weird. So probably this is something to look at as well.

Mon, Sep 3, 4:24 PM · Cycles, Compositing, Rendering, BF Blender
Bastien Montagne (mont29) assigned T56664: Clamping Direct/Indirect Should be Renderlayer Specific Instead of General Render Setting to Brecht Van Lommel (brecht).

@Brecht Van Lommel (brecht) @Sergey Sharybin (sergey) while much more like a feature request than a bug, think that totally make sense… Maybe change the task to TODO type?

Mon, Sep 3, 4:11 PM · Cycles, Compositing, Rendering, BF Blender

Sun, Aug 26

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

Hi @Brecht Van Lommel (brecht), I know you have a lot to do, but could this feature someday included in Blender? (Only asking)

Sun, Aug 26, 9:16 AM · Compositing
Michael P. (forest-house) updated subscribers of D2411: Compositor: Add Anti-Aliasing node.

Hi @Brecht Van Lommel (brecht), I know you have a lot to do, but could this feature someday included in Blender? (Only asking)

Sun, Aug 26, 9:16 AM · Compositing

Thu, Aug 23

Jeroen Bakker (jbakker) closed D3638: Compositor: Film-like curve.
Thu, Aug 23, 11:42 AM · Video Sequencer, Compositing

Aug 23 2018

Brecht Van Lommel (brecht) accepted D3638: Compositor: Film-like curve.
Aug 23 2018, 10:44 AM · Video Sequencer, Compositing
Jeroen Bakker (jbakker) added a comment to D3638: Compositor: Film-like curve.

Updated the patch

Aug 23 2018, 10:35 AM · Video Sequencer, Compositing
Jeroen Bakker (jbakker) updated the diff for D3638: Compositor: Film-like curve.

Updated patch with comments from @Brecht Van Lommel (brecht)'s review

Aug 23 2018, 10:34 AM · Video Sequencer, Compositing
Brecht Van Lommel (brecht) requested changes to D3638: Compositor: Film-like curve.

Looks generally fine. For release notes / documentation I guess this can be summarised as:

Aug 23 2018, 1:31 AM · Video Sequencer, Compositing

Aug 22 2018

Jeroen Bakker (jbakker) updated the summary of D3638: Compositor: Film-like curve.
Aug 22 2018, 10:07 PM · Video Sequencer, Compositing

Aug 18 2018

Yevgeny Makarov (jenkm) updated subscribers of T54716: Corner Pin adds blur to an input image?.

Yeah, there is some blurring at the default values.
Assume that the image is recalculated (always) which leads to blurring.

Aug 18 2018, 12:44 AM · Compositing, BF Blender

Aug 13 2018

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.

Aug 13 2018, 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.

Aug 13 2018, 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.

Aug 13 2018, 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 .
Aug 13 2018, 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.

Aug 13 2018, 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.

Aug 13 2018, 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 .
Aug 13 2018, 4:37 AM · Compositing, BF Blender

Jul 29 2018

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

Excellent - yes fixed now thank you.

Jul 29 2018, 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!

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

Jul 18 2018

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

Jul 17 2018

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

Looks good to me now, besides one accidental change.

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