Effects like blooming

Currently i thought a bit in the future of my first project and it gives me the thought that blooming would be a nice additions to shiny parts. Is this possible with the currently available filters? Normally i stretch the contrast, until it is more or less black and white. After that i apply a blur filter (for smooth fade-out) and “add” the result to the current image/layer/group…

Any good thoughts how to create this effect? Currently i’m struggling with the two needed sources. Since i need to “add” a modified image to the original image.

Hi niabot.
I don’t know what the effect blooming do but I can help you on the way to create it.

    As I have mentioned in other thread, it is possible to duplicate a layer and link its parameters to obtain a clone of it. But there is a much power feature that emulates this in Synfig. When you encapsulate layers you are creating a “inline canvas” for them. The inline canvases inherits the properties of the ancestor canvas it has been created. But it it possible to export the canvas parameter of the Paste Canvas Layer. Once exported, the canvas is independent of the root canvas in its properties (although it belongs to the same document than the root canvas). But the best thing is that you can reuse the exported canvas elsewhere in the document just by creating a paste canvas layer and setting its canvas parameter to be the exported one. This way you can create stuff and reuse it all the times you need. Remember that once exported the canvas cannot be unexported or deleted (because we don’t know how to)
    Use the Color Correct Layer. It is very self explanatory.
    Please use the provided blend methods of Synfig. Remember that layers are applied form top to bottom using the blend method of the layer being applied. Well, internally the layers are rendered from bottom to top adding content with the proper blending operations.

Good luck

Blooming is a simple effect that make bright parts of an image bleed out of its normal contour. A simple an good example is this teapot: blog.nextrevision.com/?p=18
The small image (bottom left) will be created by manipulating the contrast of the original image. Keeping bright parts bright and and makes the rest very dark. After that blurring is applied. The final result of this filtered image is then added to/blended over the original. Thats basically it.

I will try out your instruction and hopefully understand what this layers are able to do.

“Epic Fail”

I followed your instructions. Exported the canvas of my figure, gave it a name. Added an an empty paste canvas with “new”. After that i selected the exported canvas. As soon i try to link it, synfig crashes with a segmentation fault (reproducible). Not even the popup is displayed, since it crashes right before it would display it.

You don’t need to link anything but need to click on the canvas parameter and select the exported canvas from the drop down list.
Please, can you provide a sample file or a full recipe to reproduce it?

I build a simple example.

First thing to notice: I can’t export a canvas with a name that contains spaces. (gives me a warning but continues, without exporting anything)

After exporting it, i created a new paste layer. Selected it, selected the exportedCanvas from the Canvas Browser, and right-clicked on the canvas property. Directly at the click it crashes.
test.sifz (1.31 KB)

I can’t reproduce the crash. I effectively can click on the canvas parameter of the empty paste canvas layer and after click it again, select the exportedCanvas from the drop down list. Then I click anywhere and the canvas is assigned without any crash.

Is there any message in the terminal before or after the crash?
Attached the file with the desired action.
test.sifz (1.33 KB)

Tried it again. This time i used a left-click (giving me the list to choose from) and it worked without a problem. As soon i do any right-click on the parameter, before the canvas is “linked” (state of the file i posted), it crashes. After assigning the canvas i can do the right-click and its like usual.

Output is:

tbn@bryllfrosch:~$ synfigstudio

   synfig studio -- starting up application...

synfig(4763) [17:15:10] info: Loading modules from /opt/synfig/etc/synfig_modules.cfg
synfig(4763) [17:15:27] warning: CanvasView::rebuild_ducks_layer_(): Layer doesn't have canvas set
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `GtkTreeView::odd-row-color' of type `GdkColor' from rc file value "((GString*) 0x8c49620)" of type `GString'
synfig(4763) [17:15:27] warning: CanvasView::rebuild_ducks_layer_(): Layer doesn't have canvas set
synfig(4763) [17:15:29] warning: CanvasView::rebuild_ducks_layer_(): Layer doesn't have canvas set
Segmentation fault

you found a bug from a new feature recently added!!!
That’s the reason for the releases candidates!
Thank you very much for the effort on using the RC1 on your work. It is very generous from your side!
I’ll fix it as soon as possible.

The backtrace:

#0 raise() at :0
#1 abort() at :0
#2 __assert_fail() at :0
#3 etl::loose_handlesynfig::Canvas::operator->(this = 0x7fffffffccc0) at /home/carlos/Software/NewSynfigGit/synfig/install/include/ETL/_handle.h:741
#4 synfigapp::Action::LayerParamUnSetStatic::is_candidate(x = ) at actions/layerparamunsetstatic.cpp:107
#5 synfigapp::Action::compile_candidate_list(param_list = , category = 48) at action.cpp:283
#6 studio::Instance::add_actions_to_menu(this = 0x1c734b0, menu = 0x1ddeea0, param_list = , category = 48) at instance.cpp:717
#7 studio::Instance::make_param_menu(this = 0x1c734b0, menu = 0x1ddeea0, canvas = , value_desc = , location = 0.5, bezier = false) at instance.cpp:973
#8 studio::LayerTree::on_param_tree_event(this = 0x1bf5580, event = 0x19799d0) at trees/layertree.cpp:861
#9 sigc::bound_mem_functor1<bool, studio::LayerTree, _GdkEvent*>::operator()(_GdkEvent* const&) const() at :0
#10 sigc::adaptor_functor<sigc::bound_mem_functor1<bool, studio::LayerTree, _GdkEvent*> >::deduce_result_type<_GdkEvent* const&, void, void, void, void, void, void>::type sigc::adaptor_functor<sigc::bound_mem_functor1<bool, studio::LayerTree, _GdkEvent*> >::operator()<_GdkEvent* const&>(_GdkEvent* const&) const() at :0
#11 sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, studio::LayerTree, _GdkEvent*>, bool, _GdkEvent*>::call_it(sigc::internal::slot_rep*, _GdkEvent* const&)() at :0
#12 ??() at :0
#13 ??() at :0
#14 g_closure_invoke() at :0
#15 ??() at :0
#16 g_signal_emit_valist() at :0
#17 g_signal_emit() at :0
#18 ??() at :0
#19 gtk_propagate_event() at :0
#20 gtk_main_do_event() at :0
#21 ??() at :0
#22 g_main_context_dispatch() at :0
#23 ??() at :0
#24 g_main_loop_run() at :0
#25 gtk_main() at :0

try this bloom test.sifz (1.6 KB)

That is radial lighting but not blooming. Blooming does not have a direction, and usually only occurs in areas that are brighter then white. I used the hints to avoid a crash. Bad news is, that i can’t modify (add layers) an exported canvas. The uploaded attachment is a wild use of this effect. Usually you don’t rotate the hue and leave it as it is. Works quite nice and usually i use two steps (big and small blur) after each other to get this effect. This example uses only one step. But shows what it does.
bloom test.sifz (4.53 KB)

Ussually these effects are part of post product using tools such as Adobe After Effects, Combustion, Cine paint, Blender, Jahshaka…

Adobe Premiere, AVID, Pinnacle Studio, and maybe Virtual DUB might have this feature.

I do agree it will be nice to have this filter in Synfig since it cuts down on post processing time/effort and possibly quality loss doing re-renders.

Simply said: synfig is cappable to do this on its own. Just needs a better handling for clones or exported canvas.

I wouldn’t want to use other tools to create this effects since only in synfig im comfortably able to apply them to single objects or object-groups. Thats why i wanted this effect in synfig itself, and it works already. Only the cloning of “source layers” isn’t well/not supported.

The right click on an empty canvas parameter is fixed in the next release. Remember that you’re working with a Release Candidate.

Then i still have the problem, that i can’t add new layers to the exported canvas. In other words: I can only do it, if i have finished with my project and don’t want/need to change something. Synfig is a nice tool, has lots of possibilities, but often it is the last tip of an iceberg that is missing. I needs definitely get more user friendly if the community needs to grow. Less features, but more thought trough might be better. Or you should aim to use what you have already and make it as easy to use as possible. (Just my thoughts)

Open the exported canvas in its own window and add or modify whatever you need. To do that double click on the canvas item from the Canvas Browser Panel.
Once done, the new layer seems to not be available in the root window. It is a bug, yes but once the file is rebuild, the layer is there.

If you want to help us to make Synfig better, please checkout the bug tracker and see if this bug is reported and write it if not.

Synfig is the sum of the community contribution so the more you contribute the better from Synfig you have. Just a little addition of your sand grain help us to make it better.


This is going both directions, layers and keyframes added in root canvas is not visible in subcanvas until rebuild.
Now to the question; Is there some other way to reload/rebuild a scene than just closing and reopening it?

I don’t know. I’ve not dug that section of code yet. Probably yes.