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
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
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