Neutron Engine

fully multi-threaded next generation 3D engine

Monday, January 25, 2010

DirectX 11 tech demo

The technology demo for NeutronE is done so here it is! Comments are more than welcome, the installer will be available for download as soon as our new website is up and running …

posted by admin at 7:04 am  

Sunday, November 8, 2009

DirectX 11 upgrade, new ocean …

Some people (myself included) did not know that it’s possible to use DirectX 11 on DirectX 10 hardware. Looks like Microsoft finally got something right :) Anyway, after making this discovery it was quite tempting to test those new features so here we are - Neutron engine now runs on DirectX 11 API! The transition from DirectX 10 to DirectX 11 was quite easy, again I have to praise Microsoft for not changing the API completely. The only downside is lack of debugging tools for new API, NVidia has none and Microsoft’s Pix has very limited functionality. Despite this ‘little’ obstacle the upgrade was successful and now we have the new and improved ocean rendering using compute shader. The new approach provides better control over wave amplitude, choppiness, wind influence etc. Transition from deep to shallow water is now based on water depth so it gives more realistic look. Finally, here is a short video showing new ocean at sunrise with some volumetric clouds in distance.

posted by admin at 6:26 am  

Friday, January 23, 2009

Video capture

I have implemented simple video capture so I can upload cut-scenes to the YouTube and promote engine features. Here is a sneak peak of what is coming, just a simple 320×200 compressed video. I will add more high resolution videos for each engine feature in the near future.

posted by admin at 6:49 am  

Friday, January 16, 2009

Volumetric Clouds

After a nice holiday it was time to add something new and cool to the engine. Volumetric clouds are very simple effect, ray tracing pixel shader using 3D density texture made with Perlin noise algorithm. Clouds can be of any shape, by default they are rendered as a box but some sort of ellipsoid shape would probably give even better results. Cloud shader supports specular highlights, fog (normally a horizon color) and self shadowing (clouds in general are darker at the bottom). The same shader can be used to render dynamic fog and even collision with objects can be added. Something new to add to the engine in the near future. Once again this shader is a perfect candidate for parallel calculation on DX11 using the shader model 5.

Update: volumetric clouds cast dynamic shadow onto the scene using the same approach as GPU fluid, after all it all comes down to volumetric rendering …

Volumetric clouds

posted by admin at 7:37 pm  

Friday, December 26, 2008

Device Context

I’ve finished slight redesing of rendering pipeline to facilitate for device contexts and multiple render threads in the future. Basicaly I’ve separated device from the device context so it’s easier to spawn extra render threads to do common rendering stuff like depth pass, shadow maps, radiosity etc. All this is done in preparation for DirectX 11 which is unfortunatelly still a long way from being released. I could already implement extra render threads using the November 2008 DirectX SDK but it would have to run on software renderer which is way too slow even on my quad core. So I guess we’ll have to wait for the first DirectX 11 capable graphics cards coming out next year …

posted by admin at 11:55 am  

Tuesday, December 23, 2008

Animation editor

It took me a while, but animation editor is finally up and running! There was a lot of UI work involved and I must admit that’s not the most interesting part of writting 3D engine. Anyway, the editor supports basic functionality for previewing animations for characters exported from 3D Max. It also supports adding attachments to bones. And yeah, please don’t laugh at my character, I made it myself :)

Animation editor

posted by admin at 3:12 pm  

Friday, November 21, 2008

Multi-threaded ZIP compression

I was in the mood to add more multi-threaded stuff to the engine so I’ve decided to speed up ZIP compression used in engine archiving tool by splitting it across multiple threads. The algorithm checks for available number of logical CPUs and scales accordingly. On my machine (quad core) I managed to compress 37979KBs of texture data in 7.53 seconds with compression ratio of 50.64%. This includes both CPU and HDD IO time.

posted by admin at 11:01 am  

Wednesday, November 19, 2008

Particle system multi-threading

Today I’ve implemented one thing I’ve been planning to do for a while now. I’ve extracted the update process of particle systems from the core thread and placed it in a separate one so the engine can run even faster. This now increases total number of threads in engine to 6 (core,render,particles,physics,messages,bsp) plus the main process. Just in time for the new Intel’s Core i7!

posted by admin at 7:34 pm  

Saturday, November 15, 2008

Real-time volumetric lighting

DirectX November SDK brought us a first glimpse of DirectX 11 and it’s capabilities. I must say that it looks extremely exciting, especially shader model 5.0 and multi-threading features. In that spirit, I’ve added a ray-tracing based volumetric lighting in NeutronE. Surprisingly, on my 8800 GTX the frame rate is around 60fps for indoor scenes although the shader is quite heavy. Once DirectX 11 is available this would be a perfect candidate for optimization using the new multi-threaded rendering. Finally, here are some screen shots :)

 

Volumetric lighting at daytime

 

Different angle

posted by admin at 9:47 am  

Tuesday, November 4, 2008

Real-time radiosity

I’ve been playing with real-time global illumination today, here are some screen shots from two test scenes. The algorithm is based on spherical harmonics and it’s using 3D texture to store final indirect illumination. For testing purposes probes are placed every meter which is definitely not enough but I think that results are not bad at all.

 

Comparison scene with and without indirect illumination

 

Different angle, indirect illumination at nighttime with moonlight and single spot light

posted by admin at 7:31 pm  
Next Page »

Powered by WordPress