Incident Part Three: Overpowering Fright

Project Notes

 

Note: many of the pictures on this page are links. Click to view.


October 2002

School is finally near the end. I started to work on my thesis in the summer, and made it a full-time job during september when I had a vacation from work. It's been more than a year since I've last updated this page but nothing dramatic happened to Incident until July this year.

I updated the asteroid fly-by once more with a flashier planet surface bitmap and a background. Other than that, only minor corrections and modifications. The time from September 2001 to July 2002 was spent on rendering. I left my primary computer rendering many weekends when I was away and during many workdays as well. The bulk of the animation was rendered on my secondary computer and it took four months straight.

When everything was rendered it was just a matter of editing it and making the ending titles. That all took just two or three days. The whole thing was completed July 2002. I've already shown the results to many people although I can't consider part 3 to be truly complete until I make the audio. Of course there won't be any time to do that until spring next year, when school will hopefully be over.


September 2001

A couple of spring courses demanded a lot of effort and kept me from doing anything about Incident all spring. Then I was working full time during the summer. The difference with school and work: when you come home from work you're free, when you come home from school you have to do homework. So during summer evenings and weekends, I was able to get something done.

First I made some improvements to the asteroid flyby. Not to the direction of realism, however. Instead, the scene is now even more unrealistic if you look closely. I am content with it myself.

Updated asteroid flyby

 

Still not satisfied with the galaxy thing, I modified the cloud particles. They used to be circular blobs. Now every cloud particle is a bitmap. Assigning a fractal bitmap for each cloud particle effectively means that a single cloud particle now does the job of maybe a hundred of the old particles. Although a bitmapped particle is slower to render than the simpler particle, there is a much smaller number of them so total rendering time drops. Also, since there are less cloud particles, you can have more star particles. The latest version of the galaxy therefore appears to have a lot more stuff, but the number of particles is actually unchanged.

I also improved the star motion blur a lot. Previously the motion blur samples were blended right in the frame buffer using multiplicative transparency. Now the samples for each star are blended on a separate buffer using additive transparency; the resulting buffer is then blended to the frame buffer using multiplicative transparency. This is much closer to what actually happens on real film in a real camera.

By additive/multiplicative transparency I mean that the RGB component values of the transparent object are added to / multiplied with the RGB component values of the background. The RGB values can be inverted or noninverted, depending on what sort of effect you want to have.

Updated galaxy thing

 

I finally obtained 3dsmax4. I guess the best news about it was that when I put all my three CS characters into the same scene (cargo bay 2), it did not crash like 3DSMAX3 did. So I was able once again to edit that scene. Many long evenings and entire weekends went into animating the scene. The result is by far the most complex scene I have ever done at least in terms of materials, lighting and animation.

Cargo bay 2 geometry

 

Unlike before, I first animated the action and only then started planning on how to shoot it. This caused some problems in camera placements and movements and video post timing. Things are even further complicated because in this scene things are happening in several places at the same time.

Character Studio has also seen some improvements some of which were quite helpful during the animation of the three characters. This time character studio animation was quite challenging because of the extensive interaction between two of the characters and also a lot of interaction with some objects. An old but nevertheless annoying feature is that a character's object space is bound to a single object throughout the scene. There does not seem to be an easy way to make a character first grab an object, let go, and then grab another object.

Some highlights from the latest video post preview rendering:

Kate is based on a sample skin from 3DSMAX3. Very little geometry editing. Materials and physique are all mine and it shows. That stuff on Kate's face (also hands and clothes) is supposedly engine grease. The hair is all wrong but to make it better would require a legitimate hair plugin. Jack is also based on a 3DSMAX3 sample skin. Jack required a bit more editing and looks less like the original compared to Kate.

Behind Kate, Jack notices something and runs for cover. The run is a sample motion capture from 3DSMAX3. Jack's motions are hand animated starting with the leap. Kate's motions are all hand animated. Jack nudges Kate causing her to lose balance and drop the box. All of this worked out nicely; Kate's flailing motions look quite real and the hand animated box bounces off the edge of the balcony and drops convincingly. I fell into the old trap; 3dsmax's physics does not handle grouped objects and I remembered this too late. Since I did not want to animate the carrying of the box (and Kate's hands) again, I had to manually animate the box's fall. There are also two A4-sized pieces of paper that are picked up by Jack's wake and float down to the floor below. Animation of the tumbling papers is quite crude, just as it was in part 2 for the three pieces of paper the navigation room.

Lighting was particularly tricky here. After some experimenting I had to give in and add some invisible light sources to the scene. There are now 22 lights in the scene, all with mapped shadows. The balcony is lighted primarily by a spotlight which has no corresponding light-emitting object in the scene. Initially there were only two lights that provided light to the balcony: the spotlight behind Kate in the hangar and the flashing green light on one corner of the balcony. Most of the time this setup left the balcony and anything on it completely unilluminated from the front. When I found a good place for a spotlight, I noticed that I would not be able to put a visible light source there and get away with it. The root of this problem is that in this scene the two reasonable places for lights are the ceiling and the floor, both of which are too far away from the balcony. Anyway, the lighting is now ok, although I think it could look both more dramatic as well as more realistic. However, the process of trying to get the balance of 22 light sources just right is a big task so I think I'll just go with this.

Behind Jack, a horizontal stripe of red indicates that the door frame is missing a face or two and the background is showing. Already corrected that one. The camera Jack runs toward has a depth of field multi pass effect not visible here since effects were not on in this rendering. The focus of the camera goes from Kate to Jack. It looks good but is a costly effect, since it multiplies rendering time by 10 or more.

 

In slow motion, Jack flies across the frame and the box falls toward the camera. Above, a ceiling light casts its rays of volume light directly to the camera. Most of the light in the scene are volume lights which makes rendering a real pain (when atmospherics is on). Shadows in the volumes seem to do surprisingly small difference but I'm hoping they will be more visible in full frame rate renderings.

The box falls to the floor and rolls, slides, then comes to a halt (from another angle). Note that when there is an omni light source next to a red container, the floor near the container has a reddish hue. In the distance, where there is a light next to a blue container, the surroundings have a bluish hue. No, it's not radiosity rendering, I just put wide spotlights with soft shadows inside the containers wherever there are bright light sources right next to a container.

 

Our freeform handling of the fourth dimension continues as Jack still seems to be in the middle of his leap. I think it works dramaturgically. Jack lands on his face, gets a bloody nose and probably breaks some bones. He then turns around quickly and points behind Kate. The camera pans to Kate and the alien. Jack's left hand is illuminated by another invisible light source. Jack's face is a blend material with an animated mask and bump, which I manually painted with Deep Paint and Photoshop. The abrasions and the blood from the nose seem too smooth-edged, but before I smoothed them, they looked like drawings instead of wounds.

 

This shot is an application of the overused effect of moving the camera back while zooming in at the same time. In this case it makes the alien increase in apparent size compared to Kate. Something had to be inserted here since the camera angles in the previous shot and the shot next to this one are too alike for those shots to be put next to each other. This was all I could think of at the moment. Oh well, it fits.

 

And now for the most difficult shots in the scene. The alien impales Kate with its right hand, picks her up, grabs her left hand, bites har arm loose at the elbow, throws away the dismembered arm and pushes Kate down. Kate drops to the floor below. Blood spurting from Kate's chest and back splashes on Kate, the alien and the balcony.

A few notes about liquid splashing on objects. The physical laws which liquids obey are known and simulation of liquids is therefore possible. A true liquid simulation is a particle system, where each molecule of the liquid is represented by a particle. The number of molecules in a single drop of any liquid makes this unpractical. Other simulation methods are usually feasible only in certain special cases, like the surface of liquid in a container (coffee cup, swimming pool, etc.) which is simulated with waves on a planar surface. The usual solution is to use macroparticles, in other words, particles that can be seen, as opposed to microparticles, such as a water molecule, which can not be seen unless there is a huge number of them. Even large budget commercial animations usually resort to macroparticles for liquid, which is a pity because they would have the resources to make convincing liquid simulations.

In Incident part 2 I used metaparticles that in some cases almost look like liquid. Metaparticles are apparently computationally very heavy in 3dsmax and consequently they caused all sorts of problems so I sort of decided to avoid using them. This time, airborne blood is facing particles with a face-mapped bitmap opacity material. There are 8 different super sprays and 1 particle cloud.

Blood on objects (Kate, alien, balcony) is blend material with an animated mask bitmap (each 3 objects have their own mask). Generation of the masks and the UVW mapping of those masks to the objects is how the spreading of the blood is achieved.

The balcony was the easiest, which does not mean that it was easy. The balcony is an object-based deflector. Normally the blood particles die when they hit a deflector, but for mask generation purposes, I modified them to spawn more particles upon collision. Then I rendered the particles on the balcony using an orthogonal camera with manual clipping planes. The clipping planes are necessary in order to get just the particles that are on the balcony surface. I then filtered the resulting animation so that the moving particles leave trails (had to write a VirtualDub plugin filter for that). Add some smoothing and adjust levels and you have a mask for the balcony. Mapping was easy in this case: a planar UV-map. The procedure requires no manual editing in this case but it does have many stages and I had to do it several times to get it right. It took a lot of time.

Kate and the alien were much more difficult and the result is also not quite so good. Kate and the alien are not planar, so you can not use a camera to capture only those particles which touch the surface. Lacking a better method, I still had to use cameras to render those particles that are somewhere near the objects, then try to map the resulting animation on the objects so that blood seems to appear at an approximately correct location at an approximately correct time. This is why the blood spreading on Kate and the alien looks so ... well, approximate. Having rendered approximately correct particles, I again filtered the result with the trail-producing VirtualDub filter of my own making. I also added some downwards dripping. Since most of Kate's and the alien's surfaces are vertical, there should be some dripping. The dripping is not very obvious in the final result but I think the lack of it could be. Unlike with the balcony, mapping the masks to Kate and the alien was pure hell. I started with planar mappings and then simply spent many, many hours with the unwrap UVW modifier. Not much of the base planar mapping remains. The result is quite close to what I was hoping for. Some face edges are showing and especially blood spurting out of Kate's arm stump on the side of her jeans is something I couldn't get right. On the other hand, blood rolling down Kate's front looks good.

One of the images is from a shot where Kate falls and the camera is pointed down to the floor below, showing no traces of blood down there even though there should be some. Already fixed that with a fourth mask.

Here's a preview rendering of the bloodbath.

So does so much blood really come out of a person? A short answer: no, this is exaggerated.

A longer answer: blood colors everything it touches very efficiently. An adult human contains several litres of blood. Imagine throwing around just one litre of ink, for example. A really, really big mess ensues. On the other hand if it were possible to impale an adult human with a clawed hand as depicted here (it is not possible, by the way), not much blood would come out as long as the hand remains inside the body. Only after the hand is removed would blood be able to spurt out, but at that point as the heart will probably no longer be beating the veins would drain slowly. When a limb is severed, blood probably does not burst quite as it does here. Also, not much blood comes out of a dismembered arm.

Real blood appears to be liquid resembling red ink, unless you have a microscope to study it at a smaller scale. Since 3dsmax does not feature liquid simulations, airborne blood is represented by particles. Because of the lack of certain kind of control over the size/rotation/velocity distribution of the particles in 3dsmax, the number of particles have to be kept to the minimum when trying to fake liquid with facing particles. This means that to fake a certain volume of liquid the size of the particles has to be quite large. Also, after experimenting with different particle sizes I found that a larger particle size, although more exaggerated, still looks more convincing than smaller sizes. This probably has something to do with liquid's tendency to form blobs as opposed to dividing to small drops, which happens only when an external force breaks the blobs apart.

The animation ends as the alien leaps for Jack. The cargo bay scene is about a minute and a half in length. The asteroid flyby (with opening titles) is two minutes and the galaxy thing is one minute, which gives a total of four and a half minutes, excluding closing titles, if any. No, wait, I still need a couple of lengthy shots that admire the architecture of the cargo bay. Maybe a half a minute or so. Five minutes in total. Much less than part two's nine minutes. Still, what was originally supposed to be a relatively short and easy project producing a couple of short shots for a movie trailer type Incident Trailer, has turned into a full-blown Incident part 3. I'll have to come up with a title.

(Currently unavailable.) This is something I call a video post timing preview (probably there is some better, commonly adopted term, but that's what I call it). It means rendering in the minimum detail but full frame rate to see whether you got 1. the animation timing and 2. the video post timing right.

The cargo bay scene still needs some fine tuning but the real problem is beginning to be the lack of CPU time for rendering. Once again. As yet I do not have final renderings of anything. With my current best HW (AMD 1GHz), I need 3-4 days for the galaxy, 1 day for the asteroid, 6-7 days for the cargo bay video post and maybe 2 days for additional cargo bay shots. About two weeks ... aargh!


January 2001

I think it was 1994 or something like that when I started making Incident. Win3.x was the "operating system" of the day. I had been messing around with 3DStudio - such as it was - for a while. Video compression tools were quite limited in availability. I decided the thing to do was to make my own animation player based on MPEG video. That was a valid decision at the time. Still, the player was based on old technology when I started it. When it was finished in 1997 it was older still and soon to be obsoleted by Win98 which plays MPEG1.

Now everyone has full color MPEG1 decoding and the equipment to decode at a good resolution and frame rate. A small subset of MPEG4 going by the name of DivX makes things even more interesting, since it needs only about half of MPEG's bit rate providing a very good quality / bit rate ratio. I still haven't gotten around to installing Win2k so I don't know what codecs it has. It might have a recent version of Microsoft's MPEG4 codec.

After completing part two a year ago, I could contain myself for only a few weeks. Then it was back to modeling. This time aiming for 640 resolution in full color using standard MPEG1 or DivX bitstreams. Incident Player was an interesting project but as an application its benefits no longer outweigh its drawbacks.

So I did some modeling during last spring. But during the summer I had a lot of problems with 3DSMAX 3. Nothing new, it's just that I had been able to cope with it before. Barely. Without going into any detail I'll just mention that since last summer I have not been able to edit part three's main scene. Nor will I be before I install later versions of windows or 3DSMAX or both. Which I will not do before I get some new equipment.

Anyway during the latter half of 2000 I was so busy with school and work that I just left it be. Since summer, I haven't done anything except update Incident Player to work under Win95 family. (Something I should have done a couple of years ago.) It doesn't look like I'm going to have any time in the near future either, so basically I'm just waiting for the equipment to get cheaper. At some point I'll buy a new computer and install Win2k instead of the current Win98 and hopefully a later version of 3DSMAX as well and then we'll see if it works or not. Until then, there's very little I could do with 3DSMAX even if I had the time.

Of course, not everything is depending on 3DSMAX. I have been further developing the galaxy thing already used in the beginning of part two. Now it's in full colour, has really nice motion blur and gas clouds as well as stars.

The galaxy thing is starting to look good

 

Before I got into trouble with 3DSMAX I managed to finally make a CS version of the alien and two other characters based on some of the sample skins that come with CS (you will recognize them).

Characters - Kate & Jack

 

And also cargo bay 2 is fully modeled. A lot of volume lights; very slow to render. A large space with a lot of stuff, but relatively painless to model due to a lot of copying. Some materials and the lighting still need some editing.

Cargo bay 2

 

And this star rise with an asteroid flyby. I don't think it looks realistic but I'm not sure I want to do anything about it.

Star rises behind a planet and an asteroid goes by

 

In fact I already have everything I would need to complete this part. All I need to do is to put the alien and the other two characters in the cargo bay scene and animate them. Unfortunately when I put all of them in the same scene, 3DSMAX crashes.


Last updated 21.9.2001