Desert Lake Environment
A quick one day project making a very simple environment and rendering it with the new atmospheric rendering system that shipped with UE4.25
Today I felt like doing a speed build of a little scene testing out the new atmospheric rendering system in UE4.25, since I’ve not had the chance to try it out yet. I had an idea in my head of a shot across a lake in an arid environment, with ripples emitting from under the camera location.
Although I can’t find the picture anymore I have probably picked it up from the something like the Windows login screen or my Chromecast screensaver, so I build from memory.
As all good things I started in Houdini creating some mountains and masking off the area I intend for the water. For most things arid I like using cellular noise as my base, followed by some pretty intense thermal erosion with a lot of movement.
After that I upsample from the relatively low 512x512 I started with and do another erosion to add some more details. In the end I also scatter some very crude rocks of varying sizes across the terrain to liven it up a bit. I calculate some basic AO and store it on the vertices, and pack that together with some of the erosion data for use in the shader in UE4.
I end up just saving it out as geometry as it gives me the most control especially for a quick project like this. I did also make some super simple patches of distant mountains but with the camera angle I ended up with they are barely visible in the final shot.
Back in UE4 I needed to enable the Sun Sky plugin and also enable Extend default luminance range in Auto Exposure settings in project settings. This is because the new atmospherics expects real physical values which are very bright compared to standard UE4.
Then I got myself set up with planar reflections in UE4. Wouldn’t really need it for a 1 shot project like this but it’s nice while figuring out the composition. The water was a lot more complex to begin with with layers of noise maps but I ended up stripping it all away in the end leaving just the ripple effect, which is made by running a sine over the distance from the camera and passing it to the NormalFromFunction helper.
I figured I should be able to calculate a parametric normal for this, since sines and cosines are usually nice like that but after messing about with it for a little while I figured what’s another cheat on the pile.
Looking back at it, that power and multiply is pretty useless, I think I was going for making the sine waves longer by distance but that didn’t really work out. The other two function inputs are just copies of this one but offset in R and G respectively.
The cloud material is slightly more exciting. I was gonna do the texture for this in Substance Designer but realized it wasn’t installed so I ended up doing it all in the material, bringing it to a juicy 1023 instructions.
The general idea was to combine some voronoi with a more detailed texture, but also distort the coordinates going into the noises to get the more whispy high altitude cloud look I was going for. Also of note is the atmospheric color references being used for emissive, so as to link the clouds to the syn and sky system. Very cool!
I tried a couple different times of day and although this new system looks really good in most of them, especially for intense sunsets and sunrises I went for the more discrete evening with the sun out of frame. I finished it up with some very mild post process tweaks and called it a day, after about 2-3 hours.
Overall I’m happy with the look of it, as simple as it is. I wish the planar reflection would give me a little bit more control over the pre added roughness, changing it from vertical to horizontal as that’s more fitting for water. Also could have done more exciting things on land but didn’t want to open up the pandoras box of vegetation so I’ll save that for next time. Here’s a higher res version of the end result.