Submitted by , posted on 18 October 2003
Image Description, by
Typhoon is a 3d engine designed for the realtime visualization of landscapes, by Stefano Lanza. It is written in C++ , uses the DirectX API and runs on the Windows platform. The latest version of the engine utilizes vertex & pixel shaders 2.0 for the rendering of landscapes. Here are the features of the engine:
a.. LOD algorithm for geometry reduction: Typhoon supports huge and highly detailed terrains. It uses a LOD algorithm based on blocks of terrain to reduce geometry in realtime. While older versions of Typhoon performed an additional refinement of terrain blocks, the new version is more hardware friendly and renders the blocks with brute force.
b.. Highly detailed, unique texturing: The terrain is textured blending a set of four base textures according to the slope of the terrain. This job is done by pixel shaders. Also, a multipass technique ensures both a smooth transition between far and near chunks of terrain, and a highly detailed texturing pass of near terrain. This technique allows highly texturing quality from any distance. Traditional techniques are supported: the engine can create unique terrain textures software-blending a set of base textures according to the slope and altitude of each point of the terrain. Traditional detailmapping is avaiaible.
c.. Dynamic lighting with shadows: Terrain lighting is based on horizons. The horizon, or skyline, of all sample points of the terrain is precalculated and then used to calculate the contribution of sun to the lighting of each pixel of terrain. This technique allows mountains to dynamically cast soft shadows on the surrounding land. The sky adds an ambient light to the scene.
d.. Atmospheric light scattering: Typhoon supports atmospheric scattering of light. The Rayleigh and Mie contributions to scattering change the colors and distinctness of distant mountains and affect the perception of their depth. This effect greatly enanches the realism of the scene. The calculations are done in a vertex shader.
a.. FFT based animation: The water is animated using a statistics based surface wave model. Fast Fourier Transformation (FFT) is the mean to quickly evaluate the model.
b.. LOD algorithm for geometry reduction: Typhoon can render huge water areas. A LOD scheme is employed to simplify the geometry of distant water. A second technique is used to assign normalmaps to patches of water. Pixel shaders use the normalmap to calculate the specular highlights of sun onto water, and to perturbate the reflected and refracted scene.
c.. Reflections & refractions: Both reflections and refractions are simulated. Two additional passes render the reflected and the refracted environment to two target textures, with water being threated as a planar surface. The textures are then mapped onto the water surface through projective texturing. The real non-planar nature of water introduces an amount of perturbation when fetching the textures. The two textures are finally blended according to the Fresnel term computed per pixel.
d.. Underwater scattering and caustics: Light is scattered and absorbed as it travels inside water. Thus the underwater environment appears darker the deeper it is. Also, refractions of light by the water surface create those light patterns called caustics. The engine uses a set of pre-built animated caustics and blend them on the underwater environment.
Dynamic sky colouring: The sky is dynamically coloured according to the position of sun. Sun and moon are rendered.
Milkshape3d models support: Rocks and other natural objects are placed on the terrain, lit and bumpmapped. Skeletal animation is supported.
LUA script system: The engine is initialized through a script system written in LUA.
FMOD sound system: The demo is enanched by a relaxing music player utilizing the FMOD sound system
Demos, additional information are on Typhoon homepage at www.gameprog.it/typhoon
For further information please contact the author at firstname.lastname@example.org