Wednesday, March 31, 2010

Top Five Nodes March

1. Color Correct. good old standby. Due to a bug I found in the 2d histo node, I've moved over to using the CC Curves a ton for my clamping and histogrammy activities, and I don't know that I'll go back. For one, you can easily round off your clamps, which is always nice, and two, you can do much saucier things than you can with a histogram. Bonus for the front-back matching and still being a relevant node a decade or so later.

2. Sapphire Warps. Bubble, again, specifically. I bet you could build some reasonably not shitty looking flames by stringing a few of these together. Later today I'm going to take a swing at making steam out of them.

3. Colored Frame. It's not very powerful, but it's so effing useful. Desmond Hume isn't my constant, these guys are.

4. Action. The Paul Newman of flame nodes, which is to say it's had a long and awesome career but it should probably retire and let some new talent shine. Since there is no new talent (fingers crossed for NAB) he's still out there, giving us "Slapshot 3" or wherever that analogy goes.

5. Batch Paint. Really, you should use it. You can even justify doing roto in it (only for very high motion cos it's swiiimy) because it is editable.

One avenue for nice contact shadows (in a limited context)

I just did a pack-replace spot yesterday where I had to add new 3d type to some live action type. While I'm reasonably confident I could have done a shitty job and explained how it was waaay outside of their budget to get a full object track and 3d render, I came up with a nifty solution. Small jobs are fun like that. They allow for creative solutions to unglamourous projects (like a pack replace)

Object track in Syntheyes (I love you Syntheyes!), exported to Maya, converted to an FBX (the direct Flame Action out of Syntheyes came in as a bunch of axes animated on their position and not one overall position & rotation axis), parented my 3d type to the axis and went about shading it up.

Using a few lights and a blurred edge detect to allow for some faked ambient occlusion (which really, if you think about it generally is just some edge shadows anyway, I got the type looking pretty close to what I had to match to. The hard part was the contact shadow.

Since the shot is reasonably 2d and the shadows fall onto a plane that's flat to camera, I used Sapphire Rays with the light outside of frame and the rays reasonably short to create the shadows. A color correct to make the falloff edges sharp and two color corrects for the shadow color and I'm at least fooling the layman.

So there you go, Sapphire Rays for shadows, in a limited context.

(so limited that my quickie mockup above looks not-awesome, but at least shows the possibility. Serifed type causes some problems, and there's a few ways to trick the edge rays, but I have some roto to get to!)

UPDATE NOTE: with Ambient Occlusion and actual Cast Shadows now in Action, this tip is obsolete!

Monday, March 15, 2010

Making the Master Keyer Work for You.

The Master Keyer's pretty sweet. You know this, and I know this. It has one glaring issue as I see it, and that is the inability to input a gmask or axillary matte. It handles foreground/background integration very well, but it's rather rare that said foreground is without tracking markers and other crap that needs to get masked out. Only you can't mask it out because there's no gmask input so you're totally effed!

There's a simple fix.

Make your cleanup mask and comp the average color of your chroma-key screen (i usually just use a CC to get the RGB value or pick if off the little proxy in Batch) through that matte over your key-in footage. I usually do it over the foreground layer as well, but should you have a graded foreground and a flat key-in, just comp the graded version of that same blue.

Now, when you run the MK you'll get all that blue removed automatically and get to use the sweet foreground/background tools. I used this trick to get great soft edges off a completely out of focus dude yesterday.

Sunday, March 14, 2010

Ambient Occlusion in Flame

I had a joke between my assistants after one of them wrote me a spark that was a mux node only faster (which begs the question, why is a mux node slowing ANYTHING down?) that by the end of this year I want to see something that makes ambient occlusion (AO) in flame.

Then I started to read up (only in the most vague sense, because the math is very heavy) on Nvidia white papers about AO, the logic being that if the most expensive Nvidia graphics card can do AO, flame should be capable on some level.

Granted it has to be written into the software, which it clearly isn't since flame's 3d handling was written a while ago, and while it's super useful for compositing, it doesn't offer anything that your modern hardware graphics do (ray tracing, AO, shadows, self-shadows, soft shadows, etc...)

But it got me thinking about how to accomplish it. After experimenting for a bit using depth mattes and normal mattes (both easy to make in flame) based on one of these whitepapers where I recognized a few key words and got noplace special, and now I'm trying another likely failure with a light dome. The light dome got me thinking about the light domes of old, which are pretty much an AO cheat, mixing 30 or so shadow passes arrayed in a globe.

This too, would not work in flame: no shadow rendering. Then I thought of a cheat, which I think will work, but I'm writing this before I test it out. If you put cameras in your main scene, and orient them with the same spread as lights, you can render out objects that you want to cast shadows, then use the mattes, coming into a later comp via projectors that match said cameras and linked to the things to cast said shadow onto and this should give you a working 3d shadow. Do this thirty times with a lot of linking expressions, and in theory it should give you AO. I'm a bit worried about how the self-shadowing is going to work, but we'll see.

Friday, March 5, 2010

Issues with the Flame Particle system

Flame's particle system reminds me of Maya's Dynamics because both were really great when they came out and haven't been touched since.

Flame tried to alleviate this to a minor extent by adding particle presets. These presets are nice, but they also underscore how difficult and limited the particle system is. When you load one up you generally get a reasonably nice effect not to dissimilar from the old Particle Illusion ones (albeit without animated sprites, which is a big deal). The problem shows up when you need to tweak said effect at all. Now you're wading through convoluted expressions and manipulators that don't scale well and are slow to update.

I think the best example is getting particles to fade off. The expression is "transparency = lifetimeI", which is pretty straight forward. Particles will be born at full opacity and fade in a linear fashion over their lifetime. What if I want them to fade up for the first, say tenth of their life? Now i've got some math to do, and quite honestly I don't know how to write that expression. I wish I did, and likely I should learn, cos a little bit of fade up is a nice thing for most particle effects. Either way, it's a bear to do.

Adding turbulence is even more complex. John Montgomery has some great tips at FXguide, but shivers man, that's a lot of code to memorize to get particles to do pretty much the first thing everyone wants particles to do.

I'm upset about this because I think Flame's future is in the commercial space, and the commercial space requires two things: flash and speed. Particles are like lens flares: they make everything look more expensive. People love particles. They're such a great way to spice up a boring pack shot or end tag. They season other effects so well. A few months ago a client asked me if I could put particles on their endtag. We had about half an hour before delivery, and I knew I would have to spend at least that time messing around with different functions and manipulators to get anything even remotely worth looking at. I want a new particle system so I can answer "yes" to that question and send the client away amazed at what me and the flame added to their commercial.

So please, update the particle system. Please. After effects kids and their $400 Particular plugin are snickering at me.

What I would like to see:

1. A vast increase in speed. Video games (video games!) have better, faster particle systems (and hardware shading, if we're being pedantic). I want millions of particles and superfast interactivity. Autodesk employs a large portion of the particle software brain trust (maya, max, soft), so talk to them. I'm using a flame; it's renowned for it's speed, so make the particles impossibly fast.

2. Ramps for controls. Ramps to dictate size, transparency, how much forces effect them, speed, color, etc.

3. Simpler, easier to manipulate forces. Specifically turbulence, and preferably with a few different noise patterns in it for different turbulences. There's a texture set for Cinema 4d that has all kinds of different noise patterns and it's fantastic. While that doesn't directly parallel, the fact that most software have only a few turbulence patterns is weak. Go crazy on the turbulence.

4. As a counter point to #3, I'd also like more complex controls. I'm not sure if the current system can't do per-particle or birth expressions, but they'd come in handy from time to time.

5. Animated sprites/per-particle slips. Old Particle Illusion (and Combustion, and Motion...) get almost all their "wow" factor from the fact that the 2d sprites animate per-particle. This needs to happen if only because it was in baby-flame SIX YEARS AGO.

6. More particle types. Multi point and multi-streak would be a start.

The one thing I don't want to see is a few new features, patches onto the existing system. Flame, and specifically Action already feels super cobbled together (hello action transfer modes!). I want to see a full on re-write, re-think and re-integration of how particles can be used in flame. It would be a cash cow the PR people could milk for years, so fucking get on it!

Bottom Five Nodes/Features February

1. Desktop "Compositor" and "Quick Comp". Compositor is a watered down Action that actually takes longer because you have to up the resolution to see anything worthwhile. Using it is like staring through a time warp. I saw Mike Semour fire it up once in an FXPHD course, but I'm willing to guess it was for novelty alone. There is absolutely no reason to keep this archaic alternate way to skin a cat in the software. Quick Comp sucks as well because it's just a Logic Op Blend, but has only like two features. I suppose if you are afraid of Batch and can't be bothered to divide your fills, then this guy is your lazy-assed bread and butter.

2. Desktop Logic Op. I've got a bit of an axe to grind with the Desktop buttons in general. Prior to Batch they made sense, but now that all those features and many more are available in Batch, and you can preview your results, animate your results and everything else, the use for desktop Logic Opping is mininal and could probably be grouped with Quick Comp and others.

3. The lack of a color warper on the desktop. Yeah, I know it's inside the CC node, but that is a huge pain, mostly because any CW setup you save off the desktop goes into your CC folder and you have to go hunting for it, should you load said setup into a CW in the MK or Batch.

4. The Keyer. Seriously, I hate it. Use the nodes in Batch. As a bit of an aside, why the hell does the MK name the output "keyresult" even after you've named the setup. That's just silly. Fuck both these nodes. Use Batch.

5. Action's particle system. I've just finished a job where I used particles reasonably heavily. Said job also got me to be an expert on faking particles, since using the system in Flame is convoluted. I'll write another post about why I think it's so important that this feature get updated, otherwise this bullet point is going to be seven paragraphs.

Top Five Nodes February

1. Sapphire Warps. Specifically the "Bubble" warp. Holy mother is it useful. The default makes it look like ass (see also: many other Sapphire defaults) and a reasonably useless random distort. But if you dial the octaves up, then mess with the frequency and aplitude you get controllable and scalable fractal edges. It's great for making gmask shapes organic and noising up edges at high frequencies. At low frequencies, it's great for general distorts.

All around, just fantastic for getting some organic nature into your comps.

2. Matte Curves. This really should be on my top five for December, but this is the first post, and Matte Curves are totally sweet. They're basically a glorified "blend" logic op. The curves affect the gamma in your foreground and background mattes. Whenever your key's edges are just a little too dark or light tweak this before you start wading through edge erodes, flashes and blurs. I've had it save some nearly impossible keys.

3. Batch Paint. Much like the modular keyer and batch and all the "nodey" stuff, people are generally scared of Batch Paint. I know I didn't use it for years. That's a shame, because it's awesome. While it doesn't have all the features of desktop paint (autopaint, some of the wash modes) it's so much better. You can add layers, clone from layers, repo layers, scale them. Then you can swap your inputs and all the effects are still applied. Works great in proxy mode to boot. Never have to re-paint something because a grade changed again. Always always always start with batch paint now.

4. Color Warper. I used to be about 50/50 on the CC/CW front in my setups. Lately I've been going more to the warper. Most of my work involves some look creation, and it's so much faster to whip around the trackballs, pull secondaries and bend gamma curves in the CW. The CC's still a great node, but for trying out different color looks, the CW is number one. (or four)

5. Sapphire Textures. Substance Noise is a nice addition, but it's still rather clunky in it's interface (loading different textures as opposed to a drop down menu), and few of the textures animate in any useful way--most just break up into layers. Sapphire, the old standby, again, has awful defaults, but once the octaves are dialed up and the frequency adjusted, Textures really shines. The basic "Folded" is my favorite and the one I use 80% of the time, but the others can come in handy from time to time as well.