Those that follow us already know that Alpha 2 will be packed with content and fixes (go listen to our podcast to get an extensive overview)! After the previous addition of volumetric clouds and motion blur in r0.15, today, we're going to focus on water.
Water Under the Bridge, Pal
For a long time, water has been a very complex topic due to the limitations of processing power. Thanks to the technological improvement of processors over the past 20 years, liquid representation in games has tremendously improved!
For a bit of history and context about this, we invite you to watch these cool videos from Digital Foundry.
Until recently, we were not happy with the graphical appearance of water in Dual Universe, and decided to change our procedure. You'll be able to discover the new and exciting results created by our rendering team on July, 11th with the deployment of r0.16. However, we wanted to give you a glimpse of how it will look.
Detailed Water and Environment
In order to simulate the appearance of realistic water on our planets, we began with the base assets in UNIGINE and applied them across all water locations; most notably, the oceans.
Our vision for water visuals was:
To avoid having just a simple “flat” water surface, and instead, aim for a more realistic simulation of waves.
Water applied at a planetary scale.
Good looking underwater effects such as caustics, water light scattering, and sun shafts.
NQ-RuDoMAs, our programmer in charge of these aspects, explains this as follows: "To further improve the visual quality of Dual Universe and achieve our vision, we decided to enable and even improve the current tech of UNIGINE. To create good looking water with waves, we are using a GPU-based technique called tessellation.
The main idea behind this approach is that the GPU will generate higher detail models from lower detail. Firstly, we generate low-resolution meshes for planets and the GPU will do all the work for us. To produce waves, we combine pre-generated wave maps and displace water vertices according to these maps."
A glimpse of our new water surface look.
Our main goal with this new water system is to maintain visual consistency across an entire planet. To achieve this, we apply different planet effects such as atmospheric scattering, ambient occlusion, environment maps, and reflections.
One of the main goals of using “physically based” water is underwater effects. Our players should have a feeling that they are actually swimming. That they can explore and see a whole new world. Three main ideas are behind this tech:
Water fog - underwater light is scattered in a more aggressive way; starting from some distance you are not able to see any details.
Sun shafts - It is because the waves reflect the sun’s rays upon the water’s reflection that we see this phenomenon. This simple effect dramatically increases overall visual quality.
Correct refraction. We are using two different approaches: distortion on all objects and water caustics.
In combination with all of these steps, we provide a “physically based” water visual, that significantly enhances final rendering. By adding these aesthetic features to the game, we suggest our players investigate a whole new reality under the surface of the ocean.
Up for a dive? Under-water rendering changes are coming in r0.16 too.
This is only the beginning, of course, as the team will continue working to iterate and improve. Our game design team will work in the future to add gameplay elements to bring some extra interest beyond the cosmetic interest. Please note that these will come at a later time, as our current focus is to deliver other promised elements to the community and backers first. Don’t expect submarines and underwater-based oriented elements anytime soon!
Adding these effects is nice and we’ve obviously tried to achieve this with minimal impact on overall graphical performance. DU is still in its Alpha stage and it's worth saying that there’s still much ahead of us to address.
We constantly tweak, refine, and fix the numerous aspects of the game and your feedback is important. For example, we heard you regarding a number of hardware issues and we're happy to announce that we’ve worked with the great people of AMD to fix some voxel appearance issues with a driver update that's already live at the time of publishing this piece!
Talking about great partners, if you're curious, you should also check this piece out on Intel's blog. It's written by NQ-Sirg, our Lead Graphics Programmer, and it provides interesting info on how we use multi-threading on modern CPUs to reduce the loading times of our gigantic open world!
To learn more details about the Alpha 2 version of Dual Universe, we recently released a podcast with behind the scenes material. It’s available here on many platforms. We hope you liked this article and these improvements! Again, we'll tweak things all the way down and as usual, so your feedback will be vital in helping us deliver our dream game.
More DevBlogs are coming, as well as a new video DevDiary! So make sure to like us on Facebook and follow us on Twitter. You'll be sure to not miss anything related to Dual Universe! And if you didn't already, join our forum and Discord server, too!