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 →

Blackmagic Fusion: The 3D Workspace

The lines between 3D and 2D visual effects tasks are blurring more and more. Nuke and Fusion both have useful 3D toolsets built in, and After Effects users can use the powerful Element 3D plug-in. Most 3D programs have 2D tools built in, and some, like Blender and Houdini, are even capable compositors themselves. For now, 3D and 2D are still distinct roles in most facilities, but each new software release brings the two closer together. A compositor should therefore understand 3D systems in at least broad strokes.

Continue reading →

OpenCL Fuses: Position and Time

This is the third 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. I have no doubt that I violate dozens of best practices, as I am entirely self-taught in this area.

This time around, we’ll look at how to introduce temporal and spatial variation into the generated image by creating a mode where the image slowly pulses and one where the color is tied to the pixel’s screen position, making a gradient.

Continue reading →

Blackmagic Fusion 9: Closing the Gap

I have just finished up two days of doing demos and answering questions at Blackmagic‘s booth on the expo floor at SIGGRAPH. I had a fine time meeting the people behind Fusion and learning a little bit more about the company. Not to mention all the interested compositors, editors, and graphics artists interested in the new software. There was a healthy mix of enthusiasm, skepticism and curiosity.Continue reading →