Overview
Vergence 2 is the second version of the Vergence 3D Engine. It was developed as a student project at the
Stuttgart Media University in Stuttgart, Germany.
Development of the engine started in march of 2008 and a first demo of the engine and its tools was presented
in late june of the same year.
The engine was, for the most part, written from scratch by a team of two. Only a few hundred lines of code have
been re-used from the previous version of the engine, primarily because of a major change in architecture and our
transition towards a multi-threaded engine core.
We consider the engine to be "work in progress" and it is still lacking many important features. We are
now working on the engine in our own time and hope to one day make a small game with it.
Screenshots
Please note that these are "work in progress" shots that do not reflect the quality of the final product.
Features
Engine
- Written in "modern" object-oriented C++
- Highly modular architecture
- Small engine-core
- Written with platform-independence in mind
- Ready for internationalization (uses Unicode everywhere)
- Very easy to use custom unit testing framework ("vunit")
- Extensive utility class library
- Utilizes multi-core CPUs (using our task-based concurrency framework)
- Intelligent resource management (asynchronous loading, streaming)
Renderer
- DirectX 9, shader model 3 class renderer
- Multi-threaded
- 64 bit high dynamic range rendering pipeline
- Platform agnostic (Renderer operates behind a platform independent abstraction layer)
Lighting
- Time of day lighting
- 100% realtime dynamic lighting
- Deferred renderer allows for a very high number of active light sources in the scene
- Per-pixel dynamic lighting (parameterized Phong shading)
- Realtime (screen-space) ambient occlusion
- Zero pre-processing
Materials
- Highly extensible shader-based material system
- Easy to use node-based material editor
- Familiar material properties including diffuse, self-illumination mask, specular mask, glossiness, opacity, opacity-mask and normal
-
Convient support for many common material effects including:
Normal mapping (including detail normal maps),
Parallax mapping,
Gloss mapping,
Specularity mapping and Glow mapping
Effects
- Highly extensible and heavily optimized effects pipeline
- Automatic management of render targets
- HDR bloom and glow effects
- Light shafts
- Color grading (sharpen, tint, contrast)
- Vignetting
- Backdrop system that allows for arbitrary meshes to be placed in the background (3D skyboxes)
- Multi-layer sky dome with dynamically lit animated clouds.
Terrain
- Heightmapped terrain
- Automatic distribution of meshes (e.g. grass, shrubs) on the terrain based on distribution texture
Scene management
- Extensible scene graph API
- Built around a simple yet powerful custom RTTI-system
- The scene graph can be queried using a powerful, SQL-like querying API
- Scene graph can be serialized and deserialized
- Automatic instancing
- Picking support
Tools
- Robust 3ds max 9 geometry exporter
- Node-based material editor
- What-you-see-is-what-you-get map editor
Libraries/Middleware
- DirectX 9
- OpenAL
- wxWidgets (for the tools)
Microsoft, Windows and DirectX are either registered trademarks or trademarks of Microsoft Corporation in the U.S. and/or in other countries.
All other trademarks, logos and copyrights are property of their respective owners.
Copyright ©2009 by Clemens Kern and Kai Jäger, all rights reserved.