Procedural Landscapes in Blender 2.8

Mindwatering Incorporated

Author: Abigail Black

Created: 01/24/2020 at 01:39 PM

 

Category:
Animation
Blender

This is for making large-scale landscapes that can be used for long-distance shots of mountains, islands, canyons, and other terrain. This will include a divider between land materials and ocean materials, so if there is no water in your desired landscape, you can skip that part.
(Preferences -> Add-ons -> check Node Wrangler)
(Required Materials:
Rock, Sand, and Moss in Diffuse, Normal, Roughness, AO, Bump
HDRI Sky texture)


Shift-A to make a plane
Go into Edit Mode -> S and 20 to scale 20 times
Subdivide -> go to left bottom corner and open dropdown. In 'Number of Cuts' bar, type 100

Go into Object Mode
Go to Modifiers Tab -> Subdivision Surface
Render: 2
Viewport: 2

Split the 3D View into two -> Have one side in Rendered View and the other side Shader Editor
Go to Scene tab and verify you are using Cycles render

Create a new material
Shift-A -> Vector -> Displacement
Displacement output to Output Viewer input
Shift-A -> Texture -> Noise
Shift-A -> Converter -> ColorRamp
Noise Factor output to ColorRamp input
ColorRamp Color output to Displacement Height input

You should see a bumpy texture on the plane

Go to Material Tab -> Settings -> Displacement as Displacement Only

Go to Shader Editor
Displacement -> Adjust Scale to desired amount (higher number = taller mountains)
Noise Texture -> Max Detail to 16 for full detail
Noise Texture -> Adjust Scale for mountain size (smaller = bigger/one mountain)
ColorRamp -> Drag black to create flat 'water' between mountains to desired level
ColorRamp -> change Linear to Ease
Displacement -> Make Midlevel = 0
Select Noise Texture -> Ctrl-T
Mapping -> Location -> Drag X and Y to slide landscape

Duplicate ColorRamp 4x (be sure that Noise Texture still attached. CRs designated 1-5)
Shift-A -> Color -> MixRGB
Shift-A -> input -> Fresnel
ColorRamp1 Color output to MixRGB Color1 input
Fresnel Factor output to MixRGB Color2 input
MixRGB Color output to Material Output Surface input
ColorRamp1 -> change Ease to Constant (drag black all the way left)
ColorRamp1 -> Slide white left until white mask touches water
Shift-A -> Shader -> Glossy
Shift-A -> Shader -> Mix
Glossy output to Mix top Shader input
Principled BDSF output to Mix bottom Shader input
ColorRamp1 -> Cut present outputs -> Color output to Mix Factor input
Mix Shader output to Material Output Surface input
Glossy -> Roughness = 0.04
Shift-A -> Texture -> Image
Image folder -> Select Rock Diffuse
Image Texture Color output to Principled BDSF Base Color input
Shift-A -> Texture -> Image
Image folder -> Select Rock Roughness
Image Texture Color output to Principled BDSF Roughness input
Set Color Input to Non-Color
Shift-A -> Texture -> Image
Image folder -> Select Rock Normal
Set Color Input to Non-Color
Shift-A -> Vector -> Normal Map
Normal Map output to Principled BDSF Normal input
Image Texture Rock Normal Color output to Normal Map Color input
Normal Map -> Strength = 10
Select Image Texture Rock Roughness -> Ctrl-T
Mapping output to Image Texture Rock Diffuse Vector input
Mapping output to Image Texture Rock Normal Vector input
Mapping -> Scale -> X and Y = 25
Shift-A -> Texture -> Image
Image folder -> Select Moss Diffuse
Mapping output to Image Texture Moss Diffuse Vector input
Shift-A -> Texture -> Image
Image folder -> Select Moss Normal
Mapping output to Image Texture Moss Normal Vector input
Shift-A -> Texture -> Image
Image folder -> Select Moss Roughness
Mapping output to Image Texture Moss Roughness Vector input
Shift-A -> Color -> MixRGB
Duplicate 2x -> intercept strings between Rocks Diffuse, Rough, and Normal and Principled BDSF
Image Texture Moss Diffuse Color output to MixRGB/Diffuse Color2 input
Image Texture Moss Normal Color output to MixRGB/Normal Color2 input
Image Texture Moss Roughness Color output to MixRGB/Roughness Color2 input
Shift-A -> Input -> Geometry
Shift-A -> Vector -> Normal
Shift-A -> Converter -> ColorRamp(6)
Geometry Normal output to Normal Normal input
Normal Dot output to ColorRamp6 Factor input
ColorRamp6 Color output to MixRGB (Diffuse, Normal, and Roughness) Factor input
ColorRamp6 -> move black and white close together in center
Normal -> adjust to sun angle (refines how shadows fall)

Go to Shader Editor -> World
Shift-A -> Image Texture
Image Folder -> Select HDRI texture
Select Image Texture -> Ctrl-T

Go to Shader Editor -> Object
Select MixRGB Diffuse -> Duplicate -> intercept string between MixRGB Diffuse and Principled BDSF
Select MixRGB Roughness-> Duplicate -> intercept string between MixRGB Roughness and Principled BDSF
Select MixRGB Normal -> Duplicate -> intercept string between MixRGB Normal and Principled BDSF
Shift-A -> Texture -> Image
Image folder -> Select Sand Diffuse
Mapping output to Image Texture Sand Diffuse Vector input
Sand Diffuse Color output to MixRGB Diffuse Color1 input
Shift-A -> Texture -> Image
Image folder -> Select Sand Normal
Mapping output to Image Texture Sand Normal Vector input
Sand Normal Color output to MixRGB Normal Color1 input
Shift-A -> Texture -> Image
Image folder -> Select Sand Roughness
Mapping output to Image Texture Sand Roughness Vector input
Sand Roughness Color output to MixRGB Roughness Color1 input
Select ColorRamp5
ColorRamp5 Color output to MixRGB Diffuse Sand Factor input
ColorRamp5 Color output to MixRGB Roughness Sand Factor input
ColorRamp5 Color output to MixRGB Normal Sand Factor input
ColorRamp5 -> black to center, drag white left until sand 'shore' in render view

Duplicate Pricipled BDSF
Duplicate Mix Shader -> intercept string between Glossy and original Mix Shader
Select Principled BDSF2
Principled BDSF2 output to Mix Shader2 Shader2 input
Select ColorRamp3
ColorRamp3 Color output to Mix Shader2 Factor input
ColorRamp3 -> bring both black and white close to center (creates foam outline near shore)
Shift-A -> Vector -> Bump
Bump Normal output to Principled BDSF2 Normal input
ColorRamp3 Color output to Bump Height input
Bump -> Strength = 2
Duplicate Bump
Bump2 Normal output to Glossy Normal input
Bump2 -> Strength = 0.15
Shift-A -> Texture -> Noise Texture
Noise Texture2 Factor output to Bump2 Height input
Select Noise Texture2 -> Ctrl-T
Noise Texture2 -> Scale = 11.5
Noise Texture2 -> Detail = 16
Noise Texture2 -> Distortion = 13
Select Mapping2
Mapping2 -> Scale Y = 14
Duplicate MixRGBs Sand Diffuse and Roughness -> intercept string between Sand and Principled BDSF
Select ColorRamp2
ColorRamp2 Color output to new MixRGBs Color2 inputs
ColorRamp2 -> black and white very close together at center (makes dark 'wet' shore)
ColorRamp2 -> Ease to Cardinal
New MixRGBs -> Factor = 0.70

previous page