Nov 18th 2011

Download RGBtoLAB 1.03Download RGBtoLAB

Ok, this Fuse started off as a really tiny one.  Fusion already has a CSConvert() that does Lab.  So all I have to do is…

if mode == 0 then

out:CSConvert("RGB", "LAB")

else

out:CSConvert("LAB", "RGB")

end

Simple and fast.  But the results were a bit… unexpected. So we added a little tweak which has no basis in known color science, it just makes is so that a linear RGB input returns what I think is a linear L output.

So why doesn’t ColorSpace have an Lab button?  I don’t know.  You can see LAB color in action in the Wand tool, though.

Other options include output a LUT Image only, as if it were a Source tool.  Same as the new option on ColorMatrixTransform.  You can also choose whether to affect the canvas color or not.


9 Comments »
May 11th 2011

The signed distance operator can be quite useful when doing image/voxel data processing based on a pixel’s distance from an iso-surface. This plugin calculates just that. The plugin is implemented using Open CL, so the Open CL program should also be copied into the same directory as the Fuse plugin.

Download Signed Distance Fuse Download Signed Distance Fuse

The tool has inputs to control the position of the iso-surface (Zeropass Threshold) and the number of rasterizing passes (Number of Passes). The output can be a distance value or a 2D – vector pointing towards the closest point in the iso-surface.

Get the Flash Player to see the wordTube Media Player.

No Comments »
Oct 21st 2010

Stefan Ihringer pointed out something on the VFXPedia that finally got me to put together a Fuse I’ve been putting off.   Since Joe Laffey never got around to updating his plugins, it makes sense to go ahead and toss this up.

Download AlphaDivideMultiply Fuse 1.01Download AlphaDivideMultiply Fuse

Just a simple RGB/A or RGB*A, plus a “Solid” and “Clear” so you don’t have to use the annoying Bol or Mat as much.   Nothing groundbreaking, but it should save a few clicks per day.

UPDATE:  I made a ViewShader for this in case you want to keep this operation in the viewer and not in the flow. Download AlphaMultiplyDivideVS

No Comments »
Oct 18th 2010

Not multum in parvo, but Maximum (or Minimum) Intensity Projection.

Download MIP Fuse 1.13Download MIP Fuse

This simple Fuse just takes a range over time and generates an image with the highest or lowest pixels.  Great for normalizing.  It does so for each channel, so it can be useful for color normalization too, or for finding the bounding box of a position pass.  It can also be useful for making “summary” thumbnails of footage.

Read the rest of this entry »

7 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 »
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 7th 2009

We were recently commissioned to do some visualizations for a virtual colonoscopy procedure.   Also known as a colonography.   If you’re unfamiliar with the process, Wikipedia has enough information to give you a general overview. While there is a lot of information on the internet about the scanning process itself and what the patient will experience, there isn’t much about the ways in which the CT data can be analyzed once it is acquired.  So here’s a brief overview of what we at Anatomical Travelogue did with it.

Screengrab from the realtime colonoscopy demo

Screengrab from the realtime colonoscopy demo

Read the rest of this entry »

1 Comment »
Apr 7th 2009

Here’s a little attempt at making a 3D vectorscope using particles.  It’s cute like the centroid comp, elegant and simple with no plugins or fuses needed.   Nothing wrong with fuses or plugins, it’s just neat to be able to have something that works for any using Fusion 5.2 or later without anything else, and lets you see what Fusion can do out of the box.

3D Vectorscope Fun!

3D Vectorscope Fun!

Read the rest of this entry »

No Comments »
Feb 25th 2009

We’ve been working on some new tools for automated segmentation, and more importantly, rationalization.

Matt shared with me a bit on the method he used in his thesis for finding the centroid of an image sample.   I made an attempt at producing such an effect solely with the tools built into Fusion, and managed a pretty nice result that’s not too shabby on the speed.  I suspect it will be sped up a lot when we make it into a fuse or plugin, but the effect is nice just as a comp, as it speaks visually to a concept that doesn’t sound like it would be visual at all.

In this first video, the green crosshair is finding the barycenter of the various circles, taking their size, density, and softness into account.

Get the Flash Player to see the wordTube Media Player.

In the next video, the same thing is happening, this time on a particle system.  Ben thought the circle example was silly because circles are easy to solve for, and this method works per-pixel, so I wanted to show an example of that type of setup.

Get the Flash Player to see the wordTube Media Player.

And here’s a comp to try out on your own.

Barycenter_Example_C’_B01

1 Comment »

« Previous Entries