Journal

Life, Reality, and everything…

Again, it’s been a long time since my last update!

Most of it was spent in San Diego, where I interned as a Shader/Lighter/Renderer for Pendulum. It was very cool over there and I sure learned a lot – and the results are pretty stunning as well, though unfortunately I can’t present them yet.

Yesterday I released my newest plug-in for After Effects, Reality. This one was a lot more work than last time, mainly because it is a whole set of plug-ins opposed to only one in Normality.
Reality deals with advanced lighting effects that are normally impossible to achieve in AE:
- specular highlights
- image based illumination (IBI)
- bump/normal mapping
- reflections
- refractions
These are especially useful as they work in near real-time, so there’s no more need to wait for Maya/MentalRay/RenderMan/etc. to finally finish rendering.

I also have a new short film in mind and have a pretty good idea of how I’ll incorporate Normality and Reality into my workflow. Nothing’s been decided story-wise, but it sure looks like there be pirates afoot…

Normality: Re-lighting plugin for After Effects

Even though I’m officially on vacation, I just can’t stop working! This time I’ve come up with a plugin for After Effects, with which you can interactively re-light 3D objects in realtime. Lighting is a tedious process in 3D – but doing it in real-time in 2D using “Normality” makes it a lot more efficient!
At the moment it supports a single point light with ambient, diffuse and specular components, color, intensity and spherical environment-maps. I’m looking into supporting image-based illumination as well.

All you need is an object in 3D that gets exported as a normal map. Here’s how it works:

Normal map
This is what you export from your 3D app of choice (a standard normal map, that is).

Light 1
After importing to AE you can now move a point light in 3D space, resulting in the object being lit from the appropriate angles. You can then move the light around and the object will be lit accordingly in realtime (more or less, depending on your setup).

Light 2
The light’s color is honoured as well as the intensity.

Environment map
Rudimentary support for environment maps is implemented.

Of course, all attributes as well as the light’s position are animateable!

I’m now trying to gauge the general interest in such a plug-in… if the interest is large enough, I’ll probably work on the algorithm a little more and get it ready for a public release. Also, if anyone cares to help me test this plug-in, please get in touch with me! (Potential beta-testers ought to be comfortable with both After Effects and a 3D app, as I don’t want to play help desk!).

Deepening the canvas

My continued research on painterly rendering techniques is beginning to bear fruits: PainterMan, a NPR RenderMan shader, has been rewritten from scratch and now works properly on any surface using a new and thoroughly optimized algorithm that provides much more control over the look.
Sublte displacement creates the illusion of paint strokes. Support for shadows and multiple light sources of any type has also been added. To my amazement it works best at high shading rates in ranges of 100-1000, whereby the time to render a frame has gone down a lot more than I could have achieved through code optimization alone.

As a matter of fact, this algorithm produces a look so different from the last version that I decided to keep the old shader alongside the updated one, simply renaming the new version to PainterMan II. Surely both can prove useful for different objects in my film.

Here’s a sample of what it looks like in a rough test scene:

That’s not all I’ve been up to lately… I have another NPR project cooking for use in Sleeping Dragon: Disney’s Deep Canvas technology looks mighty impressive, but there’s very little technical information or even documentation available on the net. A SIGGRAPH paper from 2003 proved somewhat insightful, but lacks detail here and there – not much of a surprise, of course Disney doesn’t want to give away its trade secrets just like that.

From what I gather, it should be possible to create a system similar in look to Deep Canvas using only standard programs and a little scripting. Alas, I don’t have the time nor desire to create a fully working implementation just for my short movie, so I’ll have to make do with a little hack, if at all.
As it stands, only few scenes in Sleeping Dragon would gain from a system like this, so it’s not my main focus to get this running at the moment. I’ll keep working on it alongside the film and post updates if anything noteworthy comes about.

Painterly rendering

You may have noticed my studies on NPR rendering techniques, some of which are on display in my Playground. On this project I’ll finally be able to make use of many, if not all, of the techniques I’ve been developing. For Bagel 2 I had various reasons to go with the more common (yet easier to produce) semi-realistic style… but not this time, here it’s cartoon all the way!!

PainterMan

One of my favorite techniques is “PainterMan”, a RenderMan shader I named after the natural and painterly images it produces. I’ve improved some features today to perhaps apply it on a character in my short film.
For testing purposes I’ve rendered the “Stanford Dragon”, playing with various settings in PainterMan to simulate different artistic styles. Note that all these images come straight from the 3d renderer, in this case 3delight, which is to say there’s absolutely no filters, plug-ins or other foul trickery in post involved… Read More »