Hey y'all! (I'm Jeff Wolverton, I made the 'battery beam' effect in "Green Lantern" you're talking about.) Without going into to too much detail due to Sony's NDA we sign (*cough* ahem, Tom *cough*) that particular effect (just the battery beam; as Tom mentioned there's a lot of beams in GL done a lot of different ways. But that particular effect is just a shader on a flat plane that's at the camera's near clipping plane. In other words, just a single square facing the camera is rendered. So, how the volumetric-ness? This is the fun part: think of it this way-- you don't have to make an entire ray tracer inside a renderman shader, but do this: at each pixel in screen space, get the location of the near point (point at the near clipping plane), call it A, then the position of the farthest point (far clipping plane, or use a depth map made from the stuff in the scene to stop when you hit stuff.) Call it B. Okay, now we just march from A to B and add up "densities". What's the density? That's the fun part-- it's just 'math in space'! You know the X,Y,Z of where ever you are, and you can compare that to other things passed in to the shader (say... two points that define the centerline of a cylinder, and the radius of that cylinder? Hint, Hint?) Then you can calculate distance to the centerline of the cylinder, and with a little math the "angle around" that that point is, and how far "along" the cylinder it is. The make a density function that is some function of that-- maybe start with a sine wave that goes down the length, then add some noise based on the distance to the centerline, maybe some tangents of sines of cosines... you get the picture-- do a zillion tests until you find a function that looks cool (and addresses notes from your Director and CG sups!) You'll have built up some big collection of tan(sin(distance etc., but it'll run fast (computers like math!) AND, since it's just a simple plane & shader and "math in space", it looks cool no matter how close you get to it (resolution independent, no fluid sim needs, no high voxel resolutions, etc! Computers hate dense volumes iterations; slow!) Math in space on a single plan-- good fun! It leads to all sorts of cool stuff and I'm sure I'm not the first guy to think of the trick.
cw85353741, on 25 April 2012 - 11:05 AM, said: