Overview

SONIX Engine is a real-time 3D game engine for Microsoft Windows. It is completely written in C++ and designed for DirectX 9.

Features

GUI Graph

  • GUI system with many controls supported (static texts, buttons, edit controls, windows, scroll bars, layouts …)
  • Automatic creation of controls to modify application/shader parameters
  • XML theme file referencing the parameters for each control
  • Serializable in XML

Scene Graph

  • Many nodes supported (different kind of camera nodes, light nodes, material nodes, physic nodes, property nodes, stencil shadow nodes, transform nodes, sound node, switch node …)
  • Shadow map generation included
  • Serializable in XML

Render view system

Render view is a concept that was first described in a gamedev.net forum. It is a tree-based system that allows very easily to make offscreen renderings, post-process effects, rendering to several windows and to create dependencies between the renderings
More

SONIX Editor

  • Creates, edits and exports GUI graphs and scene graphs
  • Node-level editor (low level)
  • Still in development

Materials

  • Based on Direct3D FX Files
  • Nearly entirely compatible with DXSAS 0.8 and FX Composer 1.8
  • State manager in order to optimize state changes
  • Automatic shader creation or render pass activation according to the context (lights enabled …)

File formats supported

Textures

  • bmp
  • dds
  • dib
  • hdr
  • jpg
  • pfm
  • png
  • ppm
  • tga

Mesh file formats

  • X files with or without skinning
  • MD2
  • BSP
  • 3DS with materials and smoothing groups
  • OBJ with material (MTL)

Physics

  • Tokamak physic engine (not completely supported)
  • Newton game dynamics supported
    • integrated in scene nodes
    • simple primitives, convex hulls and collision tree supported
    • Joints supported (ball and socket, hinge, slider, up vector, Corkscrew and vehicle)

Shadowing

Completely managed by the scene graph

  • Shadow volume
  • Shadow mapping

Visibility culling

  • Frustum culling
  • Occlusion culling

Input management

  • Based on DirectInput
  • Event based
  • Custom action mapping system (independant of the device)
  • wiimote and nunchuck supported using WiiYourself library

Sound management

  • Based on either DirectMusic or DirectShow depending on the media
  • normal and 3D sound

Video capture

  • Based on DirectShow
  • captures to uncompressed AVI files or WMV files
  • Custom codecs will be supported soon

N3DSE Script engine

N3DSE is a dynamic linked library made up of a compiler and a virtual machine. It is not yet completely integrated in SONIX Engine. More

Some videos