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 »
Apr 26th 2011

Look!  More shaders for the Generic Shader.

Gooch Shading courtesy of the NPR Prepass

New shaders include ColorMatrixTransform, Unit Vector, Dot Product, Half Lambert, Parallax, and NPR Prepass which returns various lighting dot products for use in making NPR effects like the Gooch shader above.

Read the rest of this entry »

3 Comments »
Dec 10th 2010

Smoothing an image without losing all the edges, that’s what the Bilateral Filter is made for. It basically performs a Gaussian blur not only in the image dimensions, but also on the color intensities. Therefore it will smooth homogeneous areas while at the same time respecting the image’s edges. The following example shows the effect very well.

The current version is for Fusion 6.1 in 64 bit only. It provides the standard bilateral filter as well as the cross bilateral filter for grayscale and color images. DoD and RoI can be used to limit processing to a desired section of the image. Since the exact filter is very slow when applying large filter kernels, calculation in OpenCL with an optional approximation method is implemented as well. First tests on supported graphic cards show a speed up by a factor of 3-5 for OpenCL with default parameters. On gray scale images with large filter sizes, the approximation method can be more than a hundred times faster.

Download Bilateral Filter 1.2Download Bilateral Filter

3 Comments »
Oct 29th 2010

Finally took the plunge and converted one of our icky Lua Fuses into shiny OpenCL.

Download Unit Vector OpenCL Fuse Download Unit Vector OpenCL Fuse

It’s a very simple function, normalizing a vector and returning that in the RGB while putting the original length into the A.  In the case of the 4D normalize, you don’t get the length.  I have no idea what took me so long to get around to this, it only took an hour or two to flesh out, but I got hung up by the fact that my video card, a Quadro 5000, does not, at this time, have OpenCL drivers that support float3.  Float4?  Fine.  Float2?  No problem.  Float3?  Fail.  So I went ahead and implemented the 3D normalize manually, and used the fast_normalize OpenCL function to make a 4D normalize.

Read the rest of this entry »

1 Comment »
Mar 9th 2010

We’ve been working on a stereoscopic production, and we’ve been coming up with helpful tricks to make things just a tiny bit easier.  Here’s an example comp that shows a couple of them.

Position Pass and Camera Metadata Screengrab

Position Pass and Camera Metadata Screengrab

Read the rest of this entry »

3 Comments »
Feb 20th 2010

A sizable segment of the population suffers from color blindness, enough so that it’s worth considering the implications on color palettes and usability.  This tool allows you to simulate the ways that various color vision deficiencies will affect you imagery.  I’ve noticed that some of the images we create probably won’t read very well to some people, and this easily lets us check if we’ve created something that could be ambiguous.

ColorBlind fuse

ColorBlind fuse

Read the rest of this entry »

No Comments »
Oct 22nd 2009

Fusion 6 added a Color Matrix tool that lets you enter your own matrix by hand, but the biggest problem with it is the lack of any methods to modify it with.  You can’t even assign controllers to it.

Fuses, however,  let you use handy methods to modify a matrix.  I’ve used some of them to create an RGB equivalent of the 3D Transform tool.  It has a similar UI, just as 3TT does, but this modifies RGB, not XYZ or UVW.

Color Matrix Tranform fuse

Color Matrix Transform fuse

Read the rest of this entry »

7 Comments »
Aug 4th 2009

We’ve seen some pretty cool things at SIGGraph so far…

Gel Sight

Gel Sight

Gel Sight is a retrographic surface imaging technique that was wonderfully elegant in it’s simplicity and effectiveness.  They also gave out free samples…

Cuda raycasting 13GB of cryomacrotome goodness (in stereo)

Cuda raycasting 13GB of cryomacrotome goodness (in stereo)

Nvidia had a stereographic interactive realtime rendering of the full 13GB Visible Human dataset being rendered in CUDA on 3 Quadroplexi.  Very impressive.  The glasses used were the new Nvidia active shutter glasses, and were very effective.

Resistive multitouch in many form factors

A new startup out of NYU showed a novel resistive multitouch device.  Very effective, low cost, and suitable to many applications.

UPDATE: Sorry about the broken link, Touchco was bought up by Amazon, so pretty much all of the cool applications they had in mind are replaced by the Kindle 3.

VLC madness courtesy 2 Fusion-io cards

VLC madness courtesy 2 Fusion-io cards

Fusion-io showed their new “budget” nonvolatile storage adapter, the ioXtreme.   $900 gets you 80GB, with a read speed o 700MB/s.  The IO’s aren’t very high, much less their enterprise solutions, but that doesn’t matter if you are reading sequential data.  The booth was pretty crazy, too, one of the better live hardware demos I’ve seen in a while.  I’ll get some pictures tomorrow.  VLC never looked so impressive…

No Comments »
Jun 24th 2009

You never know what files you are going to get from customers.  After several phone calls talking through using FTP or shipping a hard drive, confirming compression usage, acceptable file formats there is still the possibility weird naming schemes.

This is example of a schema that came through last week.

c:\data\CustomerX\study01\re-d01_001_0_1.jpg
c:\data\CustomerX\study01\re-d01_001_0_2.jpg
c:\data\CustomerX\study01\re-d01_001_0_3.jpg
c:\data\CustomerX\study01\re-d01_001_0_4.jpg
c:\data\CustomerX\study01\re-d01_001_1_1.jpg
c:\data\CustomerX\study01\re-d01_001_1_2.jpg
c:\data\CustomerX\study01\re-d01_001_1_3.jpg
c:\data\CustomerX\study01\re-d01_001_1_4.jpg
c:\data\CustomerX\study01\re-d01_001_2_1.jpg
……..

I was about to whip out my favorite file renaming software, but I wanted to retain the original names for communication with the customer.  The solution is pretty easy so I thought I’d share it.  There might be a tool that does this already but its good to know how to do this on any machine without any special tool installed.  We’re going to fix this problem with CMD.exe. muahahaha!

Read the rest of this entry »

3 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 »

« Previous Entries