|
|
|
NeL 3D Library : Features | |
Introduction
The NeL 3D library includes 3D audio and video rendering modules.
The objective of the 3D library is to provide an architecture framework for housing the code modules required for representing a virtual universe, and its contents, in 3D.
Nevrax are developing the code modules required to represent the universe that their product is based around. This universe includes animated characters, objects and special effects in a variety of environments including undulating terrain, towns and the insides of buildings.
Portability
NeL's 3D library is structured in layers built on top of a common driver layer. The Nevrax team are working with an OpenGL implementation of the driver layer, though there will certainly be further implementations for other graphics systems such as DirectX.
NeL is currently tested on GNU/Linux and Microsoft Windows platforms.
Target Platforms
There are background loading and dynamic level of detail systems that apply to all components of the 3D library, allowing the software to be addapted to run efficiently on different specifications of hardware.
The target test machine spec is as follows:
- Intel Pentium3 1GHz
- Graphics card comprising Nvidia NV20 chipset
- 128MBytes RAM
- 4GBytes free space on hard disk
- DVD-ROM
- Sound card - minimum spec to be defined
Nevrax expect their product to run at 30fps at 1024x768 resolution on a machine of this spec
Features
Undulating Landscapes
- Bezier patch landscape modeling gives NeL enormously more flexibilty than traditional height fields. NeL supports vertical faces, overhangs, and so on.
- The ROAM algorithm is used to provide adaptive subdivision of the landscape based on distance from the camera, steepness, etc.
- Geomorphing is used between LODs (levels of detail) to eliminate popping.
- Landscape colouring effects include vertex colouring and application of pre-calculated shadow maps. Pre-calculated shadows can have soft edges while real-time shadows obviously can not. Shadows can be coloured and faded at run time
- Lightmaps are used for landscape lighting to avoid lighting changing with LOD transitions
- Landscape texture mapping at a constant 1.5cm/ texel, with the possibility of a second complete additive texture layer. Texture continuity breaks due to bilinear filtering have been eliminated.
- Landscape is dynamicaly streamed into memory with background loading
- 'Snap To Ground' functionality allows objects that are on the ground to remain attached to the surface as it geomorphs
To be developed :
- Displacement maps (also known as geometric noise) - these are taken into account during lightmap generation which means that they can still be 'seen' at low levels of detail
- Dynamic lighting
- Support for scrolling shadow maps on the ground (to represent moving clouds)
Portal based Streets and interiors
- Static light maps: up to 3 layers of light map simultaneously - each layer can be enabled, dissabled, faded or coloured in real time
- Tools: ligh map generation: max plugin: support for different lamp types, ray tracing for shadows, projected images (like a slide projector), support for coloured translucent objects influencing light colour (eg coloured glass), support for saturation (with lighting at > 100%), mixing of vertex colours into light map calculation
To be developed
- Use of portal algorithm for view determination
- Support for portals for view casting from interiors into the landscape mesh
Characters and objects
- Component based object construction, which allows the assembly of multiple "parts" of objects into a single mesh around a single skeleton
In development
- Multi-Resolution Meshes, to provide a smooth reduction in polygon count as objects retreat into the distance. Full implementaion of the technicque presented by Hope, in a recent paper, with geomorphing. This implementation provides superior results for low detail LODs and smooth transitions between LODs.
- Optimised management of extremely low detail 'billboard' versions ofobjects
- The LOD system is capable of working with a subset of the LODs. This means that the high detail LODs don't have to be loaded if there is insuffricient memory or if the client machine is not sufficiently powerful to make use of them.
Animation
- Skinning: support for skinning with up to 4 matrices per vertex
- Smooth transitions between animations
- Controlable blending of multiple animations (eg 70% walk + 30% limp)
- Application of different animations to different parts of skeleton (eg run + punch)
- Animation types (so far): bones, material & light parameters
- Animation export plugins for 3DStudio Max: feature more or less complete set of 3DStudio animation controlers (bezier, tcb, linear, etc) and support for biped (Character Studio) skeleton
- Skinning export plugins for 3DStudio Max: support both physique (character studio) & com_skin2 skinning data
To be developed :
- Blended Shape animation, to provide morphing and lip-sync style animations
- Inverse kinematics - a very simple and restrictive solver intended only for slight animation adjustments such as snapping feet to ground.
- Animation types: blend shape blend sliders, logical data such as audio triggers, etc.
Materials
- Support for environment mapping, multi-texturing, texture-colouration.
- Tools: more or less complete support for 3ds max materials
To be developed :
- Support for bump mapping
- Vertex and pixel shader implementations for GeForce3 and above
Particle system
- Support for various particles representations, including dot, line, triangles fans, bitmaps, shockwave, ripples, meshes.
- A variety of emitters are available : mesh, cone, plane, points and sphere emitters.
- Forces can be applied to particles
- Support for simple collision shapes for particles
- Support for LOD with distance
- Tools: custom WYSIWYG editor
To be developed :
- Particle systems can cast light into the scene and be lit by scene lights
- Integration of tools with Max and with animation exporters
Other Special Effects
To be developed :
- Screen distortion effects
- Real time shadow casting
- Water rendering effects
Audio
In development :
- 2D and 3D audio engine
- Management of localised environment sounds (migration between 3d and 2d effcts)
- Management of audio environment (effect of environment on sound, etc)
- Scripted composite sounds for environments including cross fades between randomly selected loops with an additional layer of randomly triggered spot sounds
- Open AL/ Direct Sound implementations
Technical Features
- Exploitation of 3D graphic accelerator cards' TNL, pixel shader and vertex shader capabilities.
- Adaptive memory management with background hard disk data streaming.
- Adaptive texture and polygon detail to manage CPU load, GPU load and video memory constraints.
To be developed :
|
|