[Future Technology Research Index] [SGI Tech/Advice Index] [Nintendo64 Tech Info Index]


[WhatsNew] [Intro] [Sys Desc] [PR] [CPU] [RCP] [GFX] [Polygons] [MIPS/MFLOPS] [Res/Video] [FPS]

Ian's SGI Depot: FOR SALE! SGI Systems, Parts, Spares and Upgrades

(check my current auctions!)
[<-- Alpha (transparency) Effects] [Spotlights, Pointlights, Directional Lights, etc. -->]


Load Management (Detail Management)

Like anti-aliasing, load management is not an automatic feature; ie. it must be specifically selected by the game designer.

There are two kinds of load management which refer to slightly different things:

  1. Preventing objects from 'popping' into view, an effect that is very visible in Saturn and PSX games. This is helped by a better Z-buffer, but also by better control and design of the 3D world representation.

  2. Controlling the detail of an object based on distance, otherwise known as 'detail management' (though this term is also sometimes used to describe the use of a texture at a time before all mipmap levels of the texture have been loaded).

As far as point (1) goes, I have a simple philosophy for 3D graphics: if an object is in one's field of view, then it should be visible at an appropriate level of detail. Deciding when an object should be included in the scene relates to the over-discussed 'pop-up' effect. Essentially there is a trade-off: to represent object positions more accurately needs more memory and extra processing. Sometimes it's not really an issue (eg. in 'corridor' areas of just about any walkabout game) but often it's very important (eg. flight simulations, racing games, etc.)

[PilotWings64 image 1] [PilotWings64 image 2] The two images shown here are from PilotWings64, showing the gyrocopter advancing towards an airport runway. Comparing the two images carefully shows the load-management in action: in the right-hand image, a more detailed texture is being used for the center runway, an extra plane has appeared on top of the closer building, an extra building has appeared to the right, and two new buildings have appeared on the far side of the center runway. When one is slightly further away from the airport, none of the buildings are shown.

Turok is said to hide pop-up by using extensive depth-cueing, but hang on: if you cannot see anything popping into view (and you certainly can't in Turok) then what's happening behind the scenes is definitely not pop-up. Turok is merely employing a very clever means of detail management by taking advantage of something that adds to the atmosphere.

There aren't many examples in N64 games where one can see load management in action, usually because the games designers have done their job well. So, here is a clear example of load management from an O2 demonstration program called Performer Toon. The program allows one to alter the load management 'sensitivity' level while the viewpoint is stationary. Examine the following four images left to right (click on them to download full-size versions):

[Performer Toon image 1] [Performer Toon image 2] [Performer Toon image 3] [Performer Toon image 4]

By changing the level of detail (LOD) setting, I can alter the distance at which objects are no longer shown, and the detail level of objects which are visible. It is this setting which a game designer must decide upon for a game (if only games like PilotWings64 offered one the option of changing the LOD setting to improve or reduce the realism as a trade-off against game speed). Notice how objects not only appear in later frames which were not visible earlier, but objects already visible have extra detail added to them as the LOD setting is made more sensitive, eg. the grey building in the center of the scene has an extra floor added to it in the third frame and the brown building to the right has black door-fronts added. Also, look closely at the most distant parts of the scene in the fourth frame: even very small, almost single-pixel road signs and trees are included. This proves that there isn't really any excuse for pop-up in a game: careful design can ensure that all objects in one's line of sight are visible at an appropriate level of detail. This is why, in my opinion, so many Saturn racing games look so bad: the pop-up is abysmal.


Detail management is concerned with the data complexity of an object based on distance. In PilotWings64, for example, simpler versions of objects are used with fewer polygons when objects are far away (although, in my opinion, the switchover occurs at far too close a distance).

Imagine a cylinder in a scene (eg. a temple pillar). At near distance, the object should be drawn using a nice polygonal cylinder, say 12 to 20 vertical strips, each textured appropriately (good textures would allow one to use fewer vertical strips). At mid-distance, this could be decreased to 8 (ie. octagonal) and at far distance just a simple flat texture would do. Actually, this idea has been used in movies: recall the inside of the Mother Ship in 'Independence Day' - the alien towers visible through the fog in the distance are actually flat boards. The picture on the surface of each board was obtained by photographing the proper 3D models used and shown in the foreground. The principle is the same.

Obviously, if the transition between low-detail and high-detail is made too late, then the viewer will notice the change (this is my only real complaint about PW64). If the change is made too early, then wasted computation occurs. Ideally, one would like to be able to render both versions and blend them together, using less and less of the low-detail version as one gets closer to the object. However, this is more computationally expensive and at the moment I don't think any N64 game does this.

In high-end graphics systems, this ability is standard. I have an example movie showing a zoom-in from outer-space right down to an N64 sitting in the snow on the side of the Matterhorn mountain in Switzerland. As the viewpoint moves in, new textures are loaded 8 or 9 times, each time bringing another 48Mbytes of data. The new textures are blended with old to give a smooth seamless changeover between one level of detail and the next. And the animation always stays at 60fps.

I'm sure N64 games will improve their detail management as time goes on. Another example method is detail texturing, also something which I don't think is used right now in N64 games. This is where texels (pixels from a texture) from a completely separate high-detail texture map are drawn on top of an existing texture as one gets closer to the object. In this way, for example, a road would have extra gravel/dust/dirt detail added in the foreground where the road is closest to one's viewpoint. Currently, in all N64 games I've played so far, textures blur to a greater or lesser extent as one gets very close to them. This is preferable to pixelisation but, if detail texturing is not being used, it does mean that the game artist should ensure good quality textures are being used so that the effect is minimised (an example of a good texture is the brick-style landing pad in PW64, or the surface of the Skyhook in Shadows. An example of a not-so-good texture is the quality of the ice/snow surface in level 1 of Shadows of the Empire, which is ironic since level 1 is probably the best playing level in the game).

Strangely, one game that uses detail management very effectively is Hexen (strange since most people dismiss Hexen due to its low texture quality and fake up/down viewpoint movement). Stand near a wall or cliff-face and watch closely as you move away: at a certain distance, the game will switch to using a simplified texture for the wall, which probably means fewer polygons are being drawn, thus giving a slight speedup. Hexen makes this change from one detail to another at a good distance so that one rarely notices the change. By contrast, one game which does surprisingly little detail management is Quake (this applies to PC Quake, but I'm not sure about N64 Quake); a monster uses the same number of polygons no matter how far away the monster is - definitely a waste of computational resources.

People vary in their sensitivity to levels of detail and the sudden appearance of objects in a game. Personally, I do not like pop-up and am unimpressed when poor textures are used. As time goes on and the programming techniques used by game designers improve, these problems will lessen. However, it's important to remember that proper detail and load management in the N64 are features that are not automatically taken care of - they are hardware options which must be properly selected and exploited by game designers. So, if a game looks bad, blame the game designers, not the console itself.


[<-- Alpha (transparency) Effects] [Spotlights, Pointlights, Directional Lights, etc. -->]

Ian's SGI Depot: FOR SALE! SGI Systems, Parts, Spares and Upgrades

(check my current auctions!)
[WhatsNew] [Intro] [Sys Desc] [PR] [CPU] [RCP] [GFX] [Polygons] [MIPS/MFLOPS] [Res/Video] [FPS]
[Future Technology Research Index] [SGI Tech/Advice Index] [Nintendo64 Tech Info Index]