First Impressions of Fusion in Resolve 15

Blackmagic Design released the first public beta of Resolve 15, to which they've added a Fusion tab so that VFX work can be done without ever leaving the editing environment. Obviously, that's going to put Fusion in front of thousands more eyes, and given that I'm writing a book about it, that seems like good news to me! So it behooves me to try it out as early as possible.

Now, given that I'm a reasonably advanced user of Fusion, it's to be expected that I'll hate a lot about trying to use it in the context of Resolve. I really have no interest in being an editor, so my inclination is to resist wrapping my software inside an editing program. Keep that in mind if I get overly negative. I'm sure for editors who want to dabble their toes in effects, it's the Best Thing Evar.

First thing to hate: I can't just click over to the Fusion tab and start going. Apparently nothing in there works unless there's a clip on the timeline in the Edit tab. Okay, well, maybe I can just make a black slug to build fresh Fusion comps on top of. The slug will still need to be imported to the Media Pool and added to the Timeline before I can start playing, though, and that's a big pain. Ah well. I'll pull in a cut ref from the show I'm working on—that's a pretty good way of testing the advantages Resolve will give me.

I cut that up into shots and then switch over to the Fusion tab. Now my reference is coming in on the MediaIn1 node, which is handy. I don't intend to send that downstream, but I always want to have it in my Flow, so I'm essentially getting it "for free."

Here's another problem, though: I need to work with handles. If I just use the sliced-up cut ref, my shots will only be the length of the shots—that's no good; client aren't going to accept shots without handles. Fusion Connect apparently has the same problem. I think there's a solution here, though. I can make a second video track and move my VFX shots there. I don't know if there's an easy way to just add ten frames at each end of the clip. I can't seem to type in the timecode field to position my playhead, so for now I'll content myself with using the arrow keys to nudge the playhead and Trim mode with snapping to lengthen my clip. If the Fusion clip's already been generated, adjusting the clip in this fashion doesn't update it, but if you do it before you switch to the Fusion tab it works as expected. So great; we can work with handles! And taking the logic in reverse, we can trim the handles in the Edit page without removing them from the Fusion comp, so that actually works better than I'd expected.

The next thing I want to do is to add some CG render passes. So in typical Fusion fashion, I Ctrl+Space for the Add Tool dialog and grab a MediaIn node (there are no more Loaders, which is going to wreck most of my scripts, but I can deal). Um… how do I choose a file in this thing? There's no filename field!

Okay, method #2 is to find the file in Windows Explorer and drag it in. Okay, that seems to have worked… but. Putting in the Viewer doesn't show anything. Global In/Out are set to 0/0? Two problems with that: This clip starts at frame 579… okay, three problems with that. This client requires all comps to begin at frame 1001, so I'm going to need to find a way to renumber the output. Preferably I'd be able to renumber the inputs, too, so I can easily sync everything together. But even if that's not in the cards, I at least would like my new images to come in at the Global In point for this comp, not for the entire project. Alright, well I'm sure that can probably be fixed easily enough; this is beta software, after all. Okay, so how do I get an image sequence in here? Multi-selecting everything in the folder seems to get the job done. I'm sure that's another quirk that can easily be ironed out, so it doesn't seem worth pitching a fit over.

So now I have my CG in, and I've set the Global In/Out so that it covers the time I require. It's a linear image, though, so I really should be looking through a LUT. Where the heck is my LUTs button? It seriously took me several minutes to find it. Turns out that if the filename in MediaIn is too long, it pushes the buttons right off the edge of the Viewer. Once I actually found the LUT button, its icon looks more like it should turn on guides or a grid (you can see it above the left-hand Viewer in the screenshot below), but it seems to work, and Resolve comes with a lot of LUTs built-in. In contrast to Fusion 9, where most of the useful ones had been removed, Resolve has so many that it took me a while to find one that would convert lin to sRGB.

Shortly after I figured out the LUT, I brought a second pass of CG in and tried to Merge my two passes together by connecting their outputs. Resolve crashed. Okay, fine, Fusion crashes, too. But I'd forgotten to set the Autosave time to something other than the ridiculous 10 minutes of the default. Well, I'm not going to redo everything I've done so far, so I'll keep my next steps simple. I pull in my media again, set their In points, Merge them successfully this time, and try to view the result. Resolve crashed.

… beta software. Must remember this is beta software. But it's certainly going to be difficult to evaluate it if actions as simple as Merging and viewing images cause it to crash. Well.

I'm out of time for tonight. First impression: Too crashy to evaluate. I think there's some real potential here, though. I already see some things I like and some places where some improvement can happen immediately. I'll definitely keep experimenting and sharing my opinions on the beta test forum. Let's call me cautiously optimistic. Just the fact that Resolve is now scriptable is a huge step in the right direction. Work has already begun on creating Reactor for Resolve, and I've got it on good authority that Blackmagic is keeping the pro VFX market in their sights.

A Follow Up

It's a couple of days after I posted my initial impressions, and I've had the chance to play a little bit more. Not a lot, but enough to sort some things out. The frequent crashes were related to my GPU. There's an option in the main Resolve Preferences (available under the DaVinci Resolve menu) to force Fusion to run only on the CPU. Turning that on stopped most of the crashes. In addition, the program actually runs on the ancient Pentium loaner machine I have at home right now. It doesn't run well, but it runs. I can at least get screenshots for the book, even if I would never be able to do any actual production here.

Version control seems like a thing that will be difficult to do with ReFusion. If you start a Fusion comp by just switching over to the tab, there appear to be limited options for storing it should you want to come back to it later. If you make a new Fusion Clip after having started, it appears as though Resolve will simply destroy your previous work and replace it with a fresh comp. Less than ideal, I should think. If you started properly by creating a new Fusion Clip and want to make a new version by creating a second Fusion Clip, you'll be starting over with a fresh canvas, so you'd have to copy and paste your previous node tree. It's evident that versioning wasn't something that was considered. Fortunately, it's possible to import and export Fusion comps, so at least you can stash your work and handle versions outside the program. With some scripting and a bit of exploration of the database, I think it might even be possible to build a version control mechanism that works without having to rely on that clunky workflow.

Even once comp versions are sorted, there's still the matter of being able to review and compare those versions in the Timeline. Generation had a beautifully elegant solution, with versions stacking up vertically over a timeline. You could move up and down the version stacks with hotkeys, or even display all the versions at once in a grid layout. I'm not sure how that would work in the context of Resolve's timeline—maybe a utility Track at the top of the edit Tracks. Resolve's UI is already pretty full (not helped by their liberal use of whitespace throughout the interface), so maybe adding yet another full-width element like that would be pushing it. If comp versions could also be linked to displayed versions, you could quickly look at a version, annotate it, then immediately dive into that version of the comp, save a new version and do some tweaks, and then back out to Edit to view your changes with the rest of the cut. It sounds like a wonderful way to work—fast, yet non-destructive.

In its current form, it would be terribly difficult to include Resolve in an automated pipeline. If it opens up a little and becomes just a tiny bit more flexible, though, I still think it promises to be a powerful tool. Fortunately, even if it doesn't become pipeline-compatible, Blackmagic has expressed their intention to continue developing Fusion as a stand-alone product for the foreseeable future, so we pros won't be forced back into Nuke. I hope. (Not that there's anything wrong with Nuke from a technical standpoint—it's just too expensive, and I don't think I'd sell as many books!)

It's a Great Time to be a Fusioneer!

Over the past three months or so, there have been quite a few very encouraging and exciting developments in the Fusion community. Just in case any of them have been overlooked, I thought I'd take a few minutes out of your day to tell you about them.


The first thing I'd like to point out is the release of Reactor, a package manager for Fusion. Reactor makes it dead easy to find, download and install new tools. My own Glitch Tools are available there, as are several other offerings from Muse VFX.

Some of the items I'm going to talk about through the rest of this post are available through Reactor. It's a crucial addition to your Fusion install. It's also been designed with professional networked pipelines in mind, so you can point the repository to a shared location, enabling you to easily manage packages for your entire team. You can set up a private repository hosted locally or make your own branch on Gitlab to add another layer of vetting to the available tools.

Reactor requires Fusion 9.0.2+. For earlier versions of Fusion, you can still download individual Atoms (individual packages) directly from Gitlab.


Krokodove 7.2 at last adds Linux support. The free Krokodove plug-in suite contains over 100 tools mostly geared toward motion graphics production. They're still useful for visual effects, however. I used the KKD Shape tools recently on an episode of Legion (premiering April 3 on FX—look for a compass needle). Raf continues to add new features to Krokodove and releases them to the Fusion community as an act of love. Since it is a plug-in, it does require Fusion Studio.

Raf also rereleased an older tool called Vlam, which is a Fusion implementation of the Fractal Flame algorithm. I haven't tried it out yet, but it looks like it produces some cool imagery.


Maxim Seredkin has joined Patreon, offering up some fantastic mograph example comps. He goes by the user name mseredkin on the We Suck Less forums. Check out his work there to see the kinds of things he's capable of.

And speaking of Patreon, Vito LaManna continues to create some fantastic tutorials and examples on his own page. If you're not already one of his patrons, I urge you to consider it. Between Maxim and Vito, you'll can get tons of great advice and inspiration for look development and shading with Fusion's 3d system.


June Yu has plugged a hole in Fusion's toolset with the release of a Fractal Noise Fuse with no less than 28 new noise algorithms. He's asking only $20 on Gumroad for this amazing tool. It's designed for Fusion 9, but it works in 8 too (except for the About page pop-up window). It is an OpenCL tool, so you'll need to be sure your graphics card works in OpenCL mode in Fusion. Check it by going to the Preferences > Globals > OpenCL. But as a Fuse, it does work in Fusion Free!


Andrew Hazelden has revived several of the Easter eggs from previous versions of Fusion, including the Magic 8 Ball and Fuzionmonger, and he also uncovered and restored at least one that had apparently either never been activated or nobody had found it before. Those, among some other gems, are available under the Fun category in Reactor.

Andrew has also been thoroughly exploring Fusion's new UI Manager API and has provided numerous examples for GUI design. Most are simple proof-of-concept widgets, but some are genuinely useful on their own, such as the Fusion Diagnostic Tool and the OFX Blacklist Generator. Those can all be found in Reactor under UI Manager Lua Examples.


Psyop's Cryptomatte has come to Fusion. Cryptomatte allows you to easily generate mattes for objects in your 3d scene by simply selecting them in the Viewer. Several renderers can create Cryptomatte-compliant renders, including VRay, Houdini's Mantra, and Arnold.

Once again, Cryptomatte is available in Reactor, and the Reactor installation is much easier than the previous install procedure.


This is just a small sample of the many contributions the community is making to Fusion. More is coming, and the pool of Fusion users is growing every day. I know there's a lot of complaining out there in forums and on Facebook. The people who are happy and having a good time with Fusion have been a little quieter because we're all busy making things. I'm looking forward to whatever announcements Blackmagic has in store for us at NAB next week, and I'm really looking forward to seeing what Fusion users world-wide produce the rest of this year. 2018 has started with a bang; I think it's only going to get better from here.

If we're lucky, maybe I'll finally finish that book!

Blackmagic Fusion: Reflections

Commenter Steven Newby asked for a deeper look at the Reflect node because the existing tutorials he could find on YouTube apparently only examined reflections on a sphere. In this article, we'll take a detailed look at Reflect3D and how to use it to best effect.

Regrettably, I'll need to use Fusion 8 for this demonstration because I'm on a loaner PC that can't run Fusion 9. I therefore won't be able to provide screenshots for the use of the new spherical camera, but hopefully my description will suffice. To get started grab this coffee cup geometry, which may be familiar from the 3d workspace chapter of the upcoming book. Import the cup and saucer into the scene using the File > Import > FBX Scene… command.

The default settings are fine, so just click OK to get five new nodes in your Flow: Two Blinn materials, two FBX nodes, and Merge3D that weds the geometry together. The scale of the geometry is a little big, so in the Merge3D, switch to the Transform tab and reduce the scale to 0.1. If you like, you can also move the Y Offset control to put the bottom of the saucer at 0. Both of those things are optional, but I find it more comfortable to work that way.

I'm not concerned with integrating the cup with a photograph this time; instead, let's see if we can't make a really nice product photo image like you might see in a catalog. We'll go for a super shiny and clean look.

Continue reading →

Multi Merge Fuse for Blackmagic Fusion

MultiMerge can perform a Merge with up to 64 Inputs. Every time a new Input is connected, a new one is created. The composite is created iteratively, so each additional image is Merged with the results of the previous Merge operations. At present, every layer gets the same Apply Mode and Operator, and the Transform controls are not exposed. UPDATE: There is now a Blend control per layer, and the connected Inputs are displayed in the Control Panel for better clarity.

Changelog:

  • Version 1.1, 2017-09-19: Added a control panel link field and independent Blend sliders for each input. Removed the CloneInput() line so the tool now works identically across Fu 7, 8, and 9.
  • Version 1.0, 2017-09-18: Initial Release.

Known Issues:

Control Panel inputs do not automatically update when a new Input is added. Deselecting and reselecting the node causes the new controls to appear.

Held Out mode doesn't work and throws an error in the console.

For the Future:

Add an Apply Mode/Operator control and a Blend control for each layer.
Implement Transform controls—I'm not sure exactly how these should work. On-screen widgets only apply to the highest-numbered input, perhaps?
Implement Depth Merge (low priority)

Download it here: MT_MultiMerge.fuse

Many thanks to Stefan Ihringer and Isaac Guenard for providing some (most) of the code on which this tool was built. Also to the community at We Suck Less for helpful tips.

Defense Against the Dark Arts

David Thewlett as Remus Lupin, Defense Aganst the Dark Arts teacher at Hogwarts.

A couple of weeks ago, I began to see signs that someone was attempting to attack my online profiles and accounts. Rather than wait until my security had been broken, I decided to take steps to get out ahead of the hacker by adding additional layers of protection to my accounts and reading up on the latest best practices in online safety. "An once of Prevention is worth a pound of Cure," as Poor Richard said. In this article, I will share some of what I have learned and offer some free advice and tools to help you.Continue reading →

OpenCL Fuses: Patterns

This is the seventh in a series of articles about OpenCL Fuse development, following the guidance of Vivo & Lowe's Book of Shaders (BoS). In the previous article, I learned how to transform shapes by manipulating the coordinate system. This article expands on that approach by tiling the coordinate space.


I am going to get a bit adventurous this time by adding some image inputs to the Fuse that can be used to define patterns with exterior images. I'll also look into passing information from one kernel to another, allowing me to use any of the previous modes as a source for tiles.Continue reading →

OpenCL Fuses: Transformations

This is the sixth in a series of articles in which I explore the lessons recommended by Vivo & Lowe's Book of Shaders in the context of custom Fuse tools for Blackmagic Fusion.


In the previous article, I learned how to use OpenCL to create some basic shapes, and during that process I set up some Translate and Scale controls so that I could use the Viewer widgets I'd set up to control the shapes. I mentioned that I suspected my approach to scaling was unorthodox, but as it turns out from reading the BoS's 2D Matrices chapter, I did it exactly right: Rather than moving the shape, I modified the coordinate system, effectively reshaping the world around the shape. In so doing, I actually ran ahead of the lessons a little and solved 2/3 of this chapter already.Continue reading →

OpenCL Fuses: Shapes

This is part five in a series on OpenCL Fuse development for Blackmagic Fusion. I am attempting to convert the lessons from the Book of Shaders into working Fuses, learning a bit about programming and parallel processing as I go.


As I said at the end of the previous article, I'm skipping BoS Chapter 6 on Color because this series is aimed at compositors, who hopefully already understand that topic fairly well. If you're an engineering type, though, definitely take a look at that chapter and work through the exercises; they'll do you good! I am now moving on to drawing shapes.

As usual, I'm looking ahead toward where I think I'll want to expand on what I learn, so I'll begin by adding some more controls to the Fuse, even before I start looking at the OCL code. Obviously, I'll need to add another button for this mode. For now, I'll call it "Rectangle," although I might change it to "Shapes" later on and add another sub-mode multi-button like I did for the Interpolation mode. I also want some in-Viewer controls for transforming the shape, shells for which are not available in my template. To the right you can see a version of the control panel that's even a little further advanced than this article describes, with controls for Soft Edge, solid or hollow shapes, and a mode that creates a regular polygon. Continue reading →