¶ Landscape
- Bezier patch landscape modeling gives NeL enormously more flexibility than traditional height fields. NeL supports vertical faces, overhangs, and so on.
- Use of Bezier patches and the ROAM algorithm, 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 coloring effects include vertex coloring and application of pre-calculated shadow maps. Pre-calculated shadows can have soft edges while real-time shadows obviously can not. Shadows can be colored 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 dynamically 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
- 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
- Area based audio effects (wind, etc)
¶ Portal based streets and interiors
- Management of the scene graph depending of the needs of the environment.
- Use of portal algorithm with view casting into the landscape mesh
- Static light maps: up to 3 layers of light map simultaneously - each layer can be enabled, disabled, faded or colored in real time
- Tools: light map generation: max plugin: support for different lamp types, ray tracing for shadows, projected images (like a slide projector), support for colored translucent objects influencing light color (eg colored glass), support for saturation (with lighting at > 100%), mixing of vertex colors into light map calculation
- Audio occlusion and resonance effects
¶ Objects and characters
- Component based object construction, which allows the assembly of multiple "parts" of objects into a single mesh around a single skeleton
- Multi-Resolution Meshes, to provide a smooth reduction in polygon count as objects retreat into the distance. Full implementation of the technique presented by Hope, in a recent paper, with geomorphing. This implementation provides superior results for low detail LODs and smooth transitions between LODs.
- Character and object rendering supports bump mapping, environment mapping, multi-texturing and real time shadow casting.
- Optimized management of extremely low detail 'billboard' versions of objects
- 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 insufficient memory or if the client machine is not sufficiently powerful to make use of them.
- Object streaming, to provide a transparent load-on-demand, including the multi-resolution meshes
- Object Picking in a scene
- Support for skinning, using a base skeleton for animations, with up to 4 matrices per vertex
- Smooth transitions between animations
- Controllable 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 controllers (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
- Blended Shape animation, to provide morphing and lip-sync style animations
- Inverse kinematics
- Animation and environment related sound effects
- Support for environment mapping, multi-texturing, texture-coloration.
- Tools: more or less complete support for 3ds max materials
- Vertex and pixel shader implementations for GeForce3 and above
- Water shader effects
¶ Particle Systems
- 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 in the ObjectViewer
- Particle systems can cast light into the scene and be lit by scene lights
- Integration of tools with Max and with animation exporters
- Screen distortion effects
- Bloom
- FXAA
- Stereo Rendering
- 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.