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, 2018-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, 2018-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 →

OpenCL Fuses: Index

An ongoing exploration of OpenCL Fuses for Blackmagic Fusion. In these articles, I describe my efforts to practice the lessons outlined in the Book of Shaders in the context of custom Fusion tools. These aren't tutorials, per se, but may serve as an introductory guide to the topic.

  1. Fuse Template and Structure
  2. Hello, World!
  3. Position and Time
  4. Interpolation
  5. Shapes
  6. Transformations
  7. Patterns
  8. Randomness and Noise

OpenCL Fuses: Interpolation

This is the fourth article 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.

BoS devotes a chapter to "Shaping Functions," which are methods of modifying a gradient. Beginning with a simple linear interpolation (LERP), I'll build up several one-dimensional functions and experiment a little bit more with the control panel.

Since the Fuse is starting to turn into something interactive and fun to play with, I'm going to go ahead and provide the complete code:

bookOfShaders.Fuse

That will also make it a little easier to follow along, since this article is over 2000 words long, and I don't want to make it even longer and drier by posting 600 lines of Lua.Continue reading →