Graphics Engine

The heart of Xors3d is a proprietary graphics engine based on DirectX 9. Despite the majority of other engines which are focused on hi-end video cards, our engine is oriented on a wide range of GPUs: integrated cards, cards without shader support (fixed function pipeline), cards with support of Shader Model 1.0-3.0. The use of FFP is suitable for you if you want to be 100% sure your casual games will run on any machine. However, we recommend to use shaders which are more flexible.

Xors3d supports two separate lighting models - forward rendered lighting and deferred lighting.

Forward rendered lighting is a classic lighting technique which can be used in games with any level of graphics complexity. But you should know that this lighting model is not suitable for scenes with a lot of dynamic lights which should be displayed on screen simultaneously.

Deferred lighting is a technique right for such situations when you need to render dozens or even hundreds of lights at the same time. The video below shows a scene with 100 dynamic lights rendered at the same time.

Note: currently deferred lighting is disabled for refactoring.

Deferred rendering

Click to watch video

Xors3d provides a realtime shadow system based on PSSM technique. This technique allows to render optimized good-looking soft shadows which are cast from any light source on any entity in the scene. Optimization of shadows consists in splitting of the view frustum into parts using planes parallel to the view plane, and then generating a shadow map for each part. For instance, PSSM which uses 3 shadow maps with the size of 1Kx1K will give much smoother shadows and occupy less memory than a standard shadow mapping which uses 1 shadow map with the size of 2Kx2K.

PSSM01

Click to enlarge

Rendering:
  • hardware and software skinning
  • instancing
    • hardware
    • shader
    • software emulation
  • multiple viewports rendering
  • fullscreen antialiasing 2x-16x
  • forward rendered and deferred lighting
  • vertex lighting
    • directional
    • point
    • spot
  • per-pixel lighting using shaders
  • fog
  • different FX-flags for entities (FFP legacy of blitz3d)
  • different blending types
  • alpha testing, alpha sorting
  • order of rendering for particular entities
  • frustum culling
  • easy 2d post-render effects
Meshes:
  • full support of .b3d
  • partial support of .X, .3ds, .ms3d, .fbx (static meshes, skeletons, materials, textures)
  • primitives with automatic uv-mapping (quad, box, sphere, cylinder, cone)
  • skeletal animation
  • children management
  • bones management
  • access to vertex and index buffers
Textures:
  • .dds, .png, .tga, .bmp, .jpg
  • 1d, 2d, spheremaps, cubemaps, volumetric textures (are now being tested, not recommended for use)
  • texture filtering (point, linear, trilinear, anisotropic 1x-16х)
  • FFP texture blending (alpha, add, multiply, mulitply2x)
  • creating, copying and rendering to texture
  • moving, scaling, rotating
Shadows:
  • tunable position and direction of light
  • any entity can be a caster or receiver or both
  • shadowmap can be rendered either into backbuffer or into texture (can be used for special effects)
  • tunable number and distance ratio of split planes
  • shadowmapping shader is open and can be adjusted for special needs
Other:
  • ray casting system (different modes of entity picking)
  • rendering groups
  • particle system
  • heightmap based terrains
    • automatic LOD
    • splatting shader which can be customized
  • mesh collisions and intersections
  • billboards (sprites)
  • basic 2d graphics (lines, quads, ovals, text, images) [FastImage is advisable]
more functionalities are being developed
 
Copyright © 2009-2010. XorsTeam