Neutron Engine

fully multi-threaded next generation 3D engine

Tuesday, October 28, 2008

Particle editor

I have to say that I am a big fan of Microsoft’s .NET for building fast and robust UI. I have been using it for while and it has proven to be the easiest solution for the NeutronE’s editor. Today I finalized the basic implementation of particle effects editor, here is one screen-shot of a test system emitting meshes rendered with parallax mapping:

 

Particle editor in action

posted by admin at 3:58 pm  

Wednesday, October 22, 2008

Past development

Since this blog is almost 2.5 years overdue here is the list of engine components which have been already implemented:

Core module

  • basic file management including archiving (ZIP compression) and memory files
  • exception handling (assert macros, mini dump files etc)
  • all necessary math (vectors,matrices, quaternions etc)
  • basic array management through templates (fast dynamic arrays and “standard” arrays)
  • resource manager for simple resource management i.e. add,rename,remove files
  • memory manager (memory leaks tracking, safe pointers, garbage collection etc)
  • input manager using DirectInput
  • message manager used to broadcast messages between engine modules
  • syntax analyzer and parser for configuration files/scripting
  • various template classes (memory pool,singleton,hashing etc)
  • plug-in factory so any class can be instantiated in any module regardless of which module defines it
  • custom RTTI for fast pointer casting
  • core thread in charge of updating all engine tasks (main process just runs windows message pump)
Render module
  • abstract device interface (supports only DirectX 10 at the moment)
  • bounding volumes (sphere, axis-aligned bounding box and oriented box)
  • fast culling system based on bounding volumes (depth pass is used for further speed up)
  • BSP tree building (runs in separate thread if needed)
  • render thread which renders cached frames in parallel
  • texture manager
  • shader manager (using shader model 4.0)
  • material manager
  • geometry manager
  • scene manager
  • load/save map with progress bar
  • collision geometry manager
  • point, spot and directional lights (multiple lights per single pass)
  • soft shadows (cascade shadows for parallel light)
  • real-time global illumination using spherical harmonics
  • various specialized shader factories for depth pass, solid wire-frame, vegetation, sky, terrain, ocean, under water, decals, caustics, SSAO, sun shafts, fog, reflections, refractions etc
  • dynamic material system i.e any material can be applied on any type of object
  • HDR rendering with automatic luminance detection and eye adaptation
  • cloth simulation running on GPU using geometry shaders (with collision on GPU)
  • instancing using textures to store per instance data
  • normal and parallax mapping
  • solid wire-frame mode
  • importing of MentalMill shaders
  • importing geometry from 3D Max with automatic tanget/binormal building and material import
  • planar reflection viewport
  • console for debugging output
  • basic text rendering
Environment module
  • environment manager
  • full terrain editing including decals, height maps, texture arrays etc
  • full ocean editing including wave height, wind, foam etc
  • full vegetation editing including wind, bending factors, flexible brush configurations etc
  • full sky dome editing with 24h cycle and dynamic daytime changing
  • LOD system for terrain,ocean and vegetation
  • dynamic mesh simplifier for terrain/ocean LODs
Physics module
  • physics thread doing all physics calculation in parallel
  • rigid body, cloth and rag-doll physics
Animation module
  • animation manager
  • animation blend manager
  • full support for animations, blending etc
  • skinned mesh manager (skinning done on GPU)
  • easy switch between bipped mesh to rag-doll and rag-doll to bipped mesh
  • actions performed on animated meshes using scripting/configuration files
Particles module
  • particle system manager
  • emitters with full functionality and various parameters to control particles in three phases of their existence (birth,life,death)
  • ability to control particle’s position, orientation,size, acceleration, velocity, color, texture sub UV coordinates, physics parameters, collisions, spawn location, lifetime, magnetic fields, rotation rate  at any stage of its life
  • support for event driven actions (re-spawn on emitter deactivation, collision etc)
Editor .NET module
  • main editor form in .NET
  • flexible widget layout thanks to the MagicLibrary
  • texture editor
  • material editor
  • terrain editor
  • vegetation editor
  • editor console window
  • full separation from the engine modules, all communication is done through message system and scripting
posted by admin at 8:52 pm  

Thursday, October 16, 2008

Hello world!

Hello and welcome to the world of next generation 3D engine programming. Neutron engine (NeutronE) has been in development since March 2006 . Some of the key features are:

  • multi-threaded design aiming at next gen CPUs (8 or more cores) and upcoming DirectX 11
  • integrated with the NeutroEd editor written in .NET (C++/CLR)
  • dynamic lighting including Global Illumination and SSAO (screen space ambient occlusion)
  • dynamic soft shadows for spot, parallel and point lights
  • HDR rendering with automatic luminance detection and eye adaptation
  • dynamic material system i.e. almost any material can be applied to almost any object
  • instanced geometry support (vegetation, particles etc)
  • dynamic time of the day changes with full control over sky/terrain rendering parameters and 24h cycle
  • volumetric lighting
  • high detailed ocean/water shader (including under water effects, caustics, God rays, reflection, refraction etc)
  • up to 4×4km terrain with full editing features (using heightmaps and texture arrays)
  • terrain vegetation
  • decals applied both to terrain and objects
  • rigid body physics including ragdoll and cloth physics
  • fully functional system for creating particle effects including soft and mesh particles
  • skinned mesh animations (supports animation blending)                                 
posted by admin at 4:13 am  

Powered by WordPress