First up, I've added ambient occlusion to tiled terrain scenes. Well, I've had ambient occlusion for a few years now, but this version works with procedurally generated terrain as well as terrain read from heightmaps. And it uses height values computed on the GPU, which is faster. The runtime penalty of ambient occlusion is much lower now, so why not use it? It certainly adds depth to the scene.
|Terrain generated using domain warping and precomputed ambient occlusion to darken the deep ravines.|
3DWorld gives the user control over temperature, vegetation, atmosphere, and many other physics parameters. These variables can also be set automatically by traveling to other planets through universe mode. Not all terrain is covered with green grass, trees, and water. Here are some other biomes.
|Barren moon terrain with no clouds, atmosphere, or water, only small ice caps on the mountain peaks.|
I even implemented a lava mode for the water shaders so that volcanic planets can be shown.
|Hot lava/rocky planet with strong wind and dense, low clouds.|
I've been experimenting with volumetric spotlights that cast glowing particle cones in a dark room. This is a simple and efficient technique that draws a cone using a custom shader rather than expensive GPU ray marching. I found this blog post that explains the technique. It looks okay, but I'm not sure where to use this effect in 3DWorld. There aren't a lot of spotlights in dark, smoky rooms. I'll keep it around for future use.
|Experimental volumetric fog effect for spotlights in dark basements.|
This is one of my favorite 3DWorld screenshots. It was taken a few months ago. I tried to get all of the different universe objects in the same screenshot: sun, stars, nebula, planet, rings, and asteroids. There's some nice contrast between the yellow tinted foreground and purple tinted background.
|One of my favorite universe screenshot images, though it's kind of dark. Stars, nebula, asteroids, and planet with rings.|
Finally, here is an older screenshot showing the moment after a cluster grenade has exploded. There are a huge number of particles here, somewhere around 10,000. Each one has physics including gravity and collision detection, and all of them receive dynamic light + shadows. The triangle particles also emit their own light. Smoke and fire are drawn in many depth sorted layers with low alpha to produce a volumetric effect, which is dynamically lit with sun shadows. The light of the fires is what tints the otherwise gray-black smoke a yellowish color.
|Cluster grenade explosion screenshot with ~100 light emitting particles, ~10,000 colliding physics particles, smoke, and fire.|
That's it for this post. I'll put up more content when I have something new to show.