wow that guy is angry. if you haven’t seen it yet – check out the trailer for 300 – Frank Miller’s latest graphic novel made movie. if a trailer is any measure for the resulting movie (HAR!) it should be a winner.

anyway – i worked on 300, and i thought i’d share how vfx are done. i was called-in at the last minute to help save a couple of way-overdue sequences – which sadly means they weren’t the most amazing shots. but hey, it’s a job.

the first was the wheat sequence. it was having SERIOUS problems with render times. i was told that every kernel on every stalk was being dynamically animated and rendered.

well that’s plain silly, especially since most of the wheat was nearly a mile away from camera.

first we attacked the most distant wheat, anything over 100 meters from the camera. we covered the hill with long strips of wheat-high cards, evenly spaced. on those cards we placed images of pre-rendered wheat. they were animated in a displacement shader. in the movie to the left, you can see the pros and cons of using this approach – it renders damn fast but when the cards intersect other objects (or each other) the effect breaks down. also – all the wheat moves together, which isn’t very wheat-like. this we fixed by replacing the wheat texture with animating wheat. and it looks great from a distance.

next we went for closer wheat, from 10 meters away. here we used nearly the same technique, but instead of long strips of wheat on a card, we used thin cards with a single stalk per. this allows us to break-up the motion without using pre-animated cards, and solves much of the intersection problem.

and for up-close wheat, we use the full rez wheat/kernel/stalks. in these shots, nearly ALL the wheat you see is computer generated, and it looks good.

the pit sequence was our next challenge. here the studio had started producing the shots by creating matte paintings. the trouble started when they had to make modifications based on the clients requests: “can you make the grout thinner?” “now can you try making the grout thicker?” “can you make the blocks 50% bigger?” etc.

each change required the HUGE textures to be repainted. after only a few iterations, the shots fell behind schedule.

to solve the problem, we rebuilt the pit COMPLETELY procedurally. we had parameters for block size, block spacing, variations in block alignment, profile of the grout grooves, curvature of the pit’s edge, erosion of the grout near that edge, grease stains near the center of the blocks, dust sticking too that grease, slimy moss growing out from the grout as you descend the pit, chips in the edges of the blocks, curvature of the blocks on the inside wall of the pit, etc, etc, etc. in the end we had over a thousand parameters.

being procedural meant that anytime we needed to make a change – it was as simple as moving a few sliders and rendering. ta da.

all in all we spent about four weeks on 300, and i’m pretty happy with our work.

i should mention that “we” here means me and my dear friend Bret St. Clair, who deserves AT LEAST half the credit for the work we did.

about this entry