I've made a lot of progress recently focusing on refining my procedural planets and atmospheres. Added into the mix are multi-core particle systems, procedural nebula and AI. I'm almost ready to post videos but am excited that I have now fully tied in the galaxy to the rest of the engine, meaning totally seamless travel between every star in the galaxy all the way from warp-drive-speeds down to landing on and running around planets in first-person. Enough talk, here are some screenshots of my recent explorations : Some kind of desert planet, looks a little bit like Australia! Here's a shot of my prototype cloud system. The clouds are image based, the idea being to use a particle system or maybe cellular automata on the GPU to create procedural cloud maps for each planet. The clouds are incorporated into the atmosphere scattering shader, meaning that they get nice sunset lighting and they also cast shadows into the atmostphere. Plus you can place objects
New Nebulae Recently I began replacing the old particle-based nebula standin with proper volumetric nebula shaders. The nebulae need to be many and varied, and so I want to procedurally generate them like the rest of the universe. After being introduced to some awesome volumetric nebula examples on ShaderToy, I thought I'd too have a play around with ray-tracing a noise field to create procedural nebulae. The end result looks something like this : Ray Tracing a Noise Field The general algorithm for rendering a volumetric noise field: - for each pixel on the screen, cast a ray from far to near (or near to far based on your needs) - at each step, accumulate density by looking up procedural noise functions - in this case, a fractal brownian motion function. - return the accumulated density, to be manipulated for the final pixel colour. This is a very basic implementation of volumetric ray-tracing, and runs very slow for the output quality. Optimising the shader to
Work on the game is ongoing! Since my last posts about evolving cities, I've done a lot of work improving the game - especially the evolving cities, clouds and overall performance. I can now run the game in ultrawide resolution at 30fps on planet surfaces, which are the most costly scenes to render. This is a major achievement for my game engine, and will unblock the development of many features to come. Improvements to Evolving Cities There are many improvements to the evolving cities simulation. Road biomes (I haven't done road meshes yet) connect major installations, and residential / city zones are more likely to grow along these corridors. New installations are built in proximity to the headquarters. The roads are generated using an adaptation of the erosion code, in order to find the path-of-least-resistance. Cities evolve along road lines connecting major installations This city formed around a seam of crystals The Empire UI has been tweaked to show the main ca
Comments
Post a Comment