Jul 15th 2010

Generic Shader 3D is a template for quick shader development and tweaking in Fusion. We created it to avoid having to generate a full Visual C++ project for every random shader idea that we dream up. The tool provides the user with a large number of Fusion inputs that are passed as Cg parameters: booleans, floats, colors, materials, gradients, lights, and a transformation matrix. The user can also switch between the numbered shaders by adjusting a slider, which is implemented as a literal parameter so that only the selected code branch is compiled.

Once a shader proves to be useful and the required inputs are more or less locked-down, we typically convert it into a full-fledged 3D Fusion tool (expect more of these posted soon, by the way).

GS3

Download GenericShader3D 1.0Download GenericShader3D

Read the rest of this entry »

3 Comments »
Jun 23rd 2010

Because we couldn't wait for fuses

New shader(s) coming soon

1 Comment »
Oct 22nd 2009

Two more Fuses, this time some really simple ones that convert multi-channel images to mono-channel and back again.   Color is overrated, in general, and I find myself getting a lot of use out of these.

Color to Mono

Color to Mono

Mono to Color

Mono to Color

Read the rest of this entry »

No Comments »
Sep 22nd 2009

The latest builds of Fusion (>475) allow fuses to work with canvas color and ROIDS.  I thought I’d try that out on my Invert fuse, and it seems to work just fine.  You now have the option of whether or not to invert the canvas color.  The ROIDS support makes what was a pretty fast fuse into something even faster under most situations, and it won’t break a nice DoD-managed comp.

As time permits, I’ll go through my other fuses and add similar functionality.

Download Invert fuse 1.5Download Invert fuse

2 Comments »
Sep 2nd 2009
Absolute Values
Absolute Value Fuse

Absolute Value

I’m often trying to find the magnitude of something, regardless of sign.  Commonly done for things like normals or velocity or distance.  You would expect there to be a built in tool for that sort of thing, but there isn’t.

Previously,  I did it with a CT or a Fuse operating on a per-pixel basis.  An f.Color.rgb = abs(f.Color.rgb) sort of thing, which is pretty slow in Fusion as a CT or Fuse, but is plenty fast in Cg.  More on that later.

Today I had an idea on how to do it with a matrix.   The basic idea is to scale the the image by .5, and by -.5 and find the difference of the two.  So |x| = (.5*x)-(-.5*x)

This method is much faster.  The resulting Fuse runs about 40% faster than a CT, and several times faster than the old Fuse I had made which operated pixel by pixel.  Unfortunately, ROI isn’t supported yet for Fuses, so if you have a tiny ROI, the CT or the CMx’s will both run faster.   EDIT: ROIDS can be supported in Fuses…  I’ll need to add it to the Fuses I’ve posted so far.  Stay tuned…

So here’s the Fuse, a Cg ViewShader that lets you view the absolute value in a Viewer, and an example comp showing the CT, Fuse, and CMx methods, as well as the ViewShader.

Download FAbsolute Fuse 1.05Download FAbsolute Fuse

Download Absolute Value Viewshader 1.01Download Absolute Value Viewshader

Download Example Comp (Absolute Fuse) A01Download Example Comp (Absolute Fuse)

It would be interesting to see if the disparity between the speeds  of processing the matrix vs per-pixel goes away when you compile a c++ plugin…

2 Comments »
Aug 10th 2009
Inline proxy

The Proxy features of Fusion work great for their simplicity, but sometimes you need a bit more control.  We’re all about the control…

Cropped compare of anisotropic proxy of a 4k plate

Cropped compare of anisotropic proxy of a 4k plate

Along those lines, we’ve taken to using an inline proxy setup that provides some benefits over the built-in proxy.  It’s based around the assumption that tools take into account the pixel aspect ratios, which differs from the code branching that occurs with proxy, so you may not get correct results, but it’s also shows when tools are improperly handling pixel aspect ratios.

Read the rest of this entry »

1 Comment »
Jun 1st 2009

Oh look, another post where we do something off the wall using nothing but Fusion’s standard toolset!

In this case, I had an idea for a plugin and needed a way to explain the concept to Ben and Matt.  Basically, I wanted to find the largest “object” in an image, and this is the comp I came up with.

Get the Flash Player to see the wordTube Media Player.

Read the rest of this entry »

No Comments »
May 29th 2009

I was working on a little job today with a 2D temporally variant scalar field.

You know, B&W footage.

I needed to find the parts of the data that were changing the most and compare them to the overall data and the maximum delta.

What I ended up with, once Ben pointed it out to me, was a simple example of calculus laid out in a couple tools.   The simplest case is just taking the frames I have and interpolating the same number of frames, so there’s no missing samples.  It’s silly, really.

But you can try it with other sampling, so there’s also an example of a Sobel filter, with a 1D kernel perpendicular to the normal 2D one.  Cute really.

If you checked out my interactive smoothing comp, you can see how I used a Sobel filter to make the forward facing laser pointer by looking at the differentiation of the R and G channels over time.  Same idea, just different way of expressing the temporal dimension.

I’m tossing in a Laplacian filter too, just for fun, it’s not useful for the calculus part, but it was easy to do, and shows how you can change the kernel to make different effects.  It’s possible to also evaluate 2D or 3D kernels this way, too.  The temporal offsets can be combined with spatial offsets so you could make a 3D blur filter, or a 3D sharpen.  Or a 3D Unsharp Mask, as I’ve also included.

Download 3D filtering sample (simple calculus and temporal filter examples) Download 3D filtering sample (simple calculus and temporal filter examples)

No Comments »
May 6th 2009

Ok, so this one uses a free plugin, but if you REALLY wanted, you could make it with just Fusion tools.  Exercise left to the reader though, especially those poor Rotation users.

Unlike the previous example, this one does NOT bake out all the animation to one image, but instead uses an animated image to represent the data over time.  This makes it interactive and allows it to work with motion blur.

Get the Flash Player to see the wordTube Media Player.

Read the rest of this entry »

No Comments »
May 5th 2009

Another in what is turning into a series of posts where standard Fusion tools are transformed into something very interesting…

I’m smoothing animation data (or adding noise or offsets or whatever) using nothing more than some Probes.

In this video, the green dots represent the original animation, the blue dots the smoothed animation, and the orange is the original with some noise added.

Get the Flash Player to see the wordTube Media Player.

Read the rest of this entry »

3 Comments »

« Previous Entries