My program doesn't have bugs. It just develops random features.
Fog can be used to great effect to create atmosphere and emphasize distance. There are several types of fog available in the unreal engine:
- View Fog
- works by simply tinting the rendered scene by a specified amount. Cheap but not realistic. Works in UT-generation versions, and theoretically in UT2003.
- volumetric fog
- something like an extended corona. It behaves like distance fog, but takes the shape of a sphere around a light source. Present in UT, not sure about UT2003. See below.
- Distance Fog
- sort of possible in UT (we think), and radically updated for UT2003. Very realistic: the tint of an object is deeper the further away it is form the camera, so the fog appears thick at a distance, so much so that it can hide things completely. This can be used to occlude, which helps with map optimization.
- emitter fog
- new in UT2003. The most demanding form of fog, resource wise. The only advantage Emitter-based fog has over distance fog is that emitter-based fog can move and creep about on your level. See below.
- fog ring
- this isn't fog at all, but a way of faking fog in the SkyBox. A fog ring is simply a cylindrical static mesh with a foggy-looking texture. See the Static Mesh Package/Index for where to find them in UT2003/2004 packages.
Emitter Fog is available only in UT2003 and UT2004 and is the most demanding form of fog, resource wise. The only advantage Emitter-based fog has over distance fog is that emitter-based fog can move and creep about on your level. Emitter fog is created by simply making an Emitter with a very large range of locations for particles to be spawned. The particles should be translucent, very slow moving, relatively large (for performance reasons), and also should look somewhat foggy. This can take some experimentation to get right, but fortunately, emitter fog can be seen in the 3D viewport in the editor if realtime preview is enabled.
Volumetric fog is something like an extended corona. It behaves like distance fog, but takes the shape of a sphere around a light source. I do not know if it is availible in UT2003, but I would suspect that it is. In Unreal Tournament, the radius of the spherical "fog" can be specified in the light's properties by setting the VolumeBrightness, VolumeFog, and VolumeRadius properties in the Lighting group. The fog will only be visible if the camera is within a zone that has bFogZone=true.
Tips and Tricks
Original Unreal Tournament
Fog is very handy with skyboxes that are a moving sky scene in the air. Your map will be more eye-pleasing if you have fog in the skybox. Also, who would want to see the sides of the skybox if your supposed to see the clouds flying by because your high in the sky? Anyway, if the skybox is a square, put eight lights on the perimeter and one in the center. Select all of the lights that you just created and fool around with the properties mentioned above. Be sure to not forget to set the "bFogZone" property to "True".
Ragdoll: I tend to use physicsvolume fog rather than distance fog. Distance fog has a tendency to allow you to see the outermost walls of your level fold away revealing the void, which can cause a HOM. Isn't this supposed to be prevented by bCleartofogcolour=True ?
Foxpaw: The fog in physics volumes is distance fog. Fog can also be set for zones, but both are examples of distance fog.
EricBlade: I'm curious as to if anyone knows a way to attach an emitter's particles to a moving base? I've managed to create some really great looking emitter fog, and my game has a special WeatherEffect that attaches to a player, to simulate weather throughout an entire zone, by just attaching a smaller amount directly to the player. It works fantastically for rain, snow, some occasional falling leaves, but for something slow moving/building like fog, the player just outruns it unless sitting still for a time.