Documentation/Articles/Overview of Rendering System

From NeoAxis Engine Wiki

Jump to: navigation, search
Go to higher level
RenderSystem.jpg

Contents

Overview

Rendering System is a basic component of the game engine which enables 3D graphics. The system includes an abstract interface used for graphics API implementation.

Currently, there are 2 graphics APIs supported:

For both APIs almost all engine features are available. See below for a detailed comparison.

List of Rendering System features

The Rendering System supports virtually all recent 3D graphics features. On-board and old graphic cards are also supported through the use of Fixed-Function Pipeline.

General features

  • The rendering system is based on modified and significantly optimized OGRE engine.
  • Shader Model 3.0 support
  • Support of the following shader languages: HLSL, GLSL, CG
  • Support of almost all types of graphics cards including on-board and old models
  • Fixed-Function Pipeline (FFP) support
  • Procedural shader generation for increased performance
    • Support of shader cache creation (reduces application load time)
  • Support of the three general light types: Directional, Omni, Spot
  • An option that enables setting shader version to a lower one or disable them (e.g. for testing)
  • Full-screen antialiasing
  • Rendering to a texture, support of realtime reflection generation.
  • Support of all main texture types: PNG, JPEG, TGA, HDR, BMP, PSD and DDS; as well as cubemap, volume textures, 3D textures and compressed textures (DXT/S3TC/3Dc)
  • LOD geometry systems

Materials and lighting

  • Per-pixel lighting
  • Normal mapping (with support of 3Dc textures)
  • Parallax mapping
  • Rendering to cubemap
  • Specular maps
  • Emission maps
  • Realistic water rendering
  • Special materials for vegetation rendering
  • Vertex color channel support
  • Texture animation (scrolling, rotation)
  • LOD systems for materials
  • Easy creation of specific materials

High Dynamic Range rendering (HDR)

  • 64-bit High Dynamic Range
  • HDR Bloom
  • Adaptive exposure
  • Tone mapping

Dynamic shadows

  • Depth Shadow Mapping
  • Parallel-Split Shadow Mapping
  • Soft shadows
  • Self-shadowing
  • Shadows for Fixed-Function Pipeline
  • Stencil shadows
  • Shadow optimization for different vendors , Fetch4 for ATI and NV Hardware Shadows for NVIDIA
  • Correct shadows from transparent and alpha-testing materials

Static lighting

  • Lightmap support
  • Irradiance Volume for lighting dynamic objects using precomputed static lighting
  • Build-in static light computing tool (currently includes only an ordinary calculator)
  • Static and dynamic lighting blending
  • Use of third-party and self-created libraries for creating static lighting

Animation

  • Support of skeletal animation
  • Support of Morph/Pose animation
  • Animation blending
  • Manual bone control available from code

Postprocessing

  • Post effects creation framework
  • The following effects are included: LDR Bloom, Radial blur, Blur, Motion blur, Grayscale, Heat vision, Invert, OldTV, Tiling

Special effects

  • Advanced particle system, A large number of build-in affectors and emitters
  • Support of SkyBox, SkyDome, creation of own sky materials
  • Decals
  • Billboards

Comparison of supported features for Direct3D and OpenGL

The engine supports similar features for both APIs, except for:

Feature Direct3D 9 OpenGL
Basic functionality
Yes.jpg
Yes.jpg
Depth buffer access
Yes.jpg
No.jpg
Post effects that require depth buffer access: Depth of Field, Light Scattering
Yes.jpg
No.jpg
Soft Particles
Yes.jpg
No.jpg
Hardware Geometry Instancing
Yes.jpg
No.jpg
Parallel-Split Shadow Maps (PSSM)
Yes.jpg
No.jpg

Active API selection

To switch between APIs launch the NeoAxis Configurator (Configurator.exe) (by default: start -> All programs -> NeoAxis Engine SDK -> Configurator). Open the Render tab and select an API in the Render system list. Press OK to save the changes. In order to apply changes you have to restart all editors and Game.exe.

Выбор API.