After implementing cloud generator, next logical step was to add real-time cloud shadows. Shadow is calculated by collecting cloud density while ray tracing through volumetric texture. As usual video can be found at http://www.youtube.com/user/NeutronEngine
We all know that having a great cloud system in 3D engine makes a big difference. So, after finishing LOD system I revisited some old articles about cloud generation and decided to implement my own version. The basic idea is very simple and it’s based on cellular automaton as proposed by Y. Dobashi et. al (http://nis-ei.eng.hokudai.ac.jp/~doba/papers/sig00_cloud.pdf) Clouds are lit using both multiple forward scattering of light and eye scattering (http://www.markmark.net/PDFs/RTClouds_HarrisEG2001.pdf) Rendering is done using 3D texture and simple ray tracing algorithm in pixel shader. Results can be seen in this video which is posted on http://www.youtube.com/user/NeutronEngine
This is a short scene showing engine’s LOD system applied on vegetation. LOD system is fully dynamic and it preserves scene’s lighting and shadows, it also blends naturally with the scene to minimize any artifacts like object popping etc. HD version can be found here http://www.youtube.com/user/NeutronEngine
Another video from the upcoming demo, this time we present screen space dynamic occlusion in action. This is a modification of a standard screen space ambient occlusion with additional one bounce of indirect lighting. HD version can be found here http://www.youtube.com/user/NeutronEngine
It has been a while since I posted my last update, but I’ve been busy preparing assets and textures for the upcoming demo. Finally, I have almost all the assets I need, so I was able to put together a short video demonstrating vegetation rendering in the engine and volumetric lighting. To watch HD version please visit http://www.youtube.com/user/NeutronEngine
Real-time simulation of cloth completely done on GPU was one of the first features in the engine which I implemented years ago. Up untill now I did not have any interesting (cool) ways to present this feature, but during the demo preparations I came up with the idea of using cloth to simulate ship flags and sails. I had to add some additional functionality to be able to anchor cloth on different sides, but the final result was well worth the effort! As usual, HD video uploaded to YouTube …
I still haven’t ironed out the details for the final demo but underwater scene(s) will be part of it for sure. This is one posible underwater scene demonstrating terrain editing using texture arrays, caustics, alpha masked materials casting shadows and instanced particle systems. It comes with a slight delay since I encountered an interesting problem while recording the video. Actually what happened is that I completely forgot the fact that render thread runs much slower while video capture is on but particle thread still runs at 60fps making all the fish swim super fast! This required slight adjustment in thread’s delta time calculation after which everything was back in sync. Now I can concentrate on finishing some other systems required for final demo (portal system etc). Don’t forget that you can watch this video in HD!
Couple of days ago friend of mine sent me this link http://www.uni-koblenz.de/~ritschel/ containing some really interesting articles and ideas on how to improve scene rendering quality. One of the articles proposes an interesting improvement to standard SSAO (screen space ambient occlusion) to add more realism to the scene. They call it SSDO (screen space dynamic occlusion) and the basic idea is to modify SSAO to use global normals for each pixel and bounce light around. Once I saw how simple the idea is I could not resist implementing it in Neutron Engine. So, now we have SSDO which gives us way better indirect lighting in the scene. Keep in mind that SSDO is slower than SSAO since it needs to fetch screen colors and normals for each pixel on screen and perform extra computation but final indirect illumination is much much better than the one provied by standard SSAO. Here are some screen shots so you can be the judge.
I have something cool to show today, I just finished work on adding support for objects floating on the water. There is nothing fancy about it the only tricky part is to stay in sync with the water simulation which is running on GPU. This way objects on water move in different fashion as wind or waves change giving viewer quite realistic impression. Faking reality is all that’s required anyway Here is the short video I just uploaded on YouTube.