Overview
The Vergence 3D engine was developed as a student project at the Stuttgart Media University in Stuttgart, Germany and was first shown to the public at the university's "Media Night" event in January 2007.
The primary goal of this project was to build a 3D engine, poweful enough to produce highly realistic visuals and having a feature set that is similar to that found in most modern 3D engines.
The 3D engine was developed over the course of seven months by a team of two. Additionally, a demo map was built to showcase some of the engine's features.
Engine features
General
- Written in C++
- Fully object-oriented
- Modular design
Renderer
- DirectX 9 driven
- Uses Shader Model 2.0
- All shaders written in HLSL
Lighting
- Static objects are lit using pre-rendered lightmaps
- Moving objects use per-pixel hemispheric lighting
- Objects can cast dynamic soft shadows (shadow mapping with percentage-closer-filtering)
Materials
- XML-based material format
- Very flexible and easy to use
- Materials can inherit from each other
- One shader is generated for each material
- The following material effects are supported:
- Diffuse textures
- Animated textures
- Detail textures
- Vertex-blending
- Environment mapping (cubic, spherical)
- Realtime planar reflections
- Realtime refraction
- Fresnel effects
- Normal mapping (diffuse, specular)
- Glow mapping
- Specularity mapping
- Alpha-blending
- Additive and subtractive blending
- Color- and contrast correction
- Material system can be used to produce near-photo-realistic water (no additional shaders required)
High-dynamic-range-rendering (HDR)
- 32 or 64 bit rendering pipeline
- Dynamic tone mapping
- Bloom effect
Geometry / Scene organisation
- 3ds max geometry exporter
- Streamlined binary file format
- Scene organized in octree
- View frustum culling
Physics
- Uses Newton Game Dynamics engine
- Separate (simplified) geometry for collision detection
- Objects can be grabbed and tossed
Effects
- Particle systems
- 3D skyboxes
- Volumetric fog
- Distance fog
- Dynamic spline objects (cables, ropes)
- Post-processing effect pipeline
- 3D motion blur
Sound
- Uses fmod
- 3D positional audio
- Ambient sounds
- Music
Other features
- Programmable console
- Package file system
- Unified error handling / logging system
- Fast DOM 1-compliant XML parser
- GUI-System with bitmap font support