Back to Contents

Hi there! Welcome to another tutorial for mapping in Blender. As before, this is going to build off of Daniel Huffman’s relief map tutorial so if you haven’t already, check that out first. Don’t worry, I’ll wait.

Today, let’s take a look at one of the newest and most exciting features added to Blender in the past year: the Eevee render engine. This feature promises to make 3d modeling and animation more accessible than ever before and using it we can make some really cool maps really quickly.

Eevee was added to Blender in version 2.80, so to follow along you’ll need to have that version or newer installed.

Comparing Render Engines: Eevee vs. Cycles

Blender comes packaged with two render engines to choose from in the Render Settings menu: Cycles and Eevee (a third engine – Blender Internal – has been relegated to the mists of time in a recent update). The render engine is basically a program that uses information from a scene (geometry, material properties, lighting etc.) to calculate the appearance of your final image.

Choosing our render engine

Cycles

Cycles is a raytracing engine, meaning it simulates light rays bouncing around your scene to create your final image. This process is able to simulate lighting, shadows, and reflections with a high degree of accuracy. The drawback is that raytracing is extremely computationally expensive.

Eevee

Eevee on the other hand uses a series of shortcuts to emulate the effects of light and shadow on a scene without actually simulating the light rays. The result is that Eevee isn’t able to simulate light as accurately as Cycles, but it is able to get reasonably good results much faster. Another way to think of it is that Cycles creates images in the same way that a render farm at Pixar does, while Eeve creates images in the same way that the graphics card on a game console does.

For a direct comparison between the two, here’s a relief map rendered at a resolution of 1920×1080 once in Cycles and once in Eevee. The Cycles render took 5m 19s to complete while the Eevee render took a grand total of 7.5 seconds.





Both engines have advantages and disadvantages. For a single image, the more accurate lighting in Cycles is often worth the longer render time. But for projects that require large numbers of images, or rapid iterations, Eevee is a godsend. It also opens up the possibility of creating high-quality animations without tying up a computer for days of rendering or relying on expensive render farms. For example, I rendered this video entirely with Eevee. With around 5400 frames of animation, it would have taken upwards of 250 hours to render with Cycles on my home PC. Using Eevee it took around 4 hours.

Setting up relief maps for Eevee

Because of Eevee’s limitations, we’re going to have to tweak our workflow a bit. At the moment, Eevee doesn’t support using the displacement node in the material editor to deform our mesh. Instead we’re going to use the displacement modifier. In the modifier menu, add a displacement modifier (make sure it’s under the subdivision surface modifier.) The displacement modifier will perform the same function as the displacement node.

EDIT: Don’t remove the displacement node from your material setup! Even though it doesn’t deform the mesh when Eevee is enabled, it adds a bump map that can bring out some of the subtle details in the terrain that we’d lose otherwise. Turning down the strength and using it in conjunction with the displacement modifier seems to produce the best results.

To make the modifier work we need to give it a texture to drive the displacement. Go to the texture settings menu and click “new” to add a new texture. Under settings, we’ll load our DEM and make sure the colour space is set to “Linear”. The texture is already attached to the displacement modifier so we should see it in action, although it’s probably going to look a bit weird.

To fix it, go back to the modifiers menu and under the displacement modifier, change the Texture Coordinates to “UV” and set the strength to whatever looks best for you.

One last tweak we have to make is to the Subdivision Surface modifier. Since Eevee doesn’t support the dynamic subdivision function that the original setup used, set the rendered level to 6 and the preview level to 3-5 (whatever your computer can handle without lagging).

And that’s all there is to it! If you switch to rendered view in your main viewport you should see your map. Another advantage to using Eevee is that it makes the rendered view more useful and responsive when we’re setting up our materials, changes in material colour and properties are reflected almost instantly in the viewport. One option is to adjust your workflow to use Eevee while you’re creating and editing your scene and switching to Cycles right before you render your final image.

Eevee has plenty of options that we didn’t touch on here so go forth and explore the possibilities!