Procedural Terrain Generation with Unity

Programming realistic environments with C# through the algorithmic manipulation of mesh and vegetation data.

4.70 (1021 reviews)
Udemy
platform
English
language
Game Development
category
instructor
10,787
students
15 hours
content
Mar 2024
last update
$94.99
regular price

What you will learn

Use various algorithmic approaches to create procedurally generated content.

Manipulated terrain meshes with code to create realistic looking landscapes.

Texture terrain meshes procedurally.

Discuss the design principles involved in producing aesthetically pleasing terrains.

Manipulate the render settings in Unity to produce better looking camera results.

Create custom Unity windows and graphical user interface elements for use inside the Editor.

Description

The creation of beautiful virtual terrains isn't just the domain of the artist, but also of the programmer. What if you could use your programming skills in C# to manipulate a mesh to create realistic landscapes, using algorithms developed by researchers studying landscape formation and erosion? Well now you can.

In this course, Penny introduces procedural terrain generation techniques using her internationally acclaimed holistic teaching style and expertise from over 25 years of teaching, research and work in games and computer graphics. Throughout the course you will follow along with hands-on workshops, designed to teach you the fundamental techniques used for generating realistic virtual landscapes.

Learn how to program and work with:

  • Voronoi Tessellation

  • Midpoint Displacement

  • Perlin Noise

  • Splat Maps

  • Trees and Vegetation

  • Clouds

  • Weather

  • Erosion

  • ...and water

Contents and Overview
The course begins by examining the nature of a landscape and the design considerations you should include in making decisions on structure, colour and vegetation. You'll learn what makes for a natural looking terrain, so you can replicate this in Unity.

Following on, we will examine some of the most popular algorithms used in generating terrains (including many fractal and tessellation techniques) that can be used together, to form random and yet convincing mountainous vistas.

Once you are confident with landscape formation, we'll move onto texturing the terrain with a variety of images that can be placed via splatmaps onto differing heights and gradients. Then, continue to decorate the terrain with trees, rocks and grass placed with an algorithmic approach before investigating erosion methods, that will add that extra level of realism.

The course concludes with the development of a cloud generation system and an exploration of particle systems for adding rain, snow and other atmospheric effects to the finalised landscape.

Throughout, we'll be developing our own custom Unity editor code that will allow you to build extra functionality and structure into the Unity Inspector, as well as create Editor Windows of your very own.

What students are saying about Penny's courses:

  • Penny is an excellent instructor and she does a great job of breaking down complex concepts into smaller, easy-to-understand topics.

  • Penny's teaching style is exceptionally well-motivated and illustrated.

  • This course is awesome. The lecturer explains everything you need to know and encourages you to experiment and challenge yourself.

Content

Introduction

How to Study This Course
Join the H3D Student Community
Welcome
FAQs

The Unity Terrain Object

Behind the Scenes of a Terrain Object
Manual Terrain Creation Part 1
Manual Terrain Creation Part 2
Design Principles for Terrain Aesthetics
Landscape Reproduction Challenge
Quiz 1
Getting Ready to Create a Custom Editor
Generating Random Heights Part 1
Generating Random Heights Part 2
Loading Height Map Data from an Image
Quiz 2
Solution Code

Perlin Noise

Noise Theory
Implementing Simple Perlin Noise
Brownian Motion
A Quick Note About GUITable Code
Multiple Perlin Noise
Solution Code

Voronoi Tessellation

What is Voronoi Tessellation
Creating Mountain Peaks
Modifying Mountain Slopes
Multiple Random Peaks
Adding a Choice of Function Types
Solution Code

Midpoint Displacement

Introduction to MPD
The Diamond Step
The Square Step
Smoothing Part 1
Smoothing Part 2
Solution Code

Texturing

New Splatmap format for Unity V.2018.3
Splatmaps
Specifying Texture Heights
Blending Texture Overlaps
Running out of Room in the Inspector Editor?
Texturing on Steep Terrain
Creating a Procedural Texture
Making a Seamless Texture
Saving a Texture into the Assets Folder
Modifying Global Pixel Values
Solution Code
Displaying Heightmap Challenge

Vegetation

Working with Tree Prototypes Part 1
Working with Tree Prototypes Part 2
Working With Layers
Setting Tree Heights
Setting Tree Properties
Fixing Tree Positions for Differing Terrain Scale Sizes
Solution Code

Details

Adding Detail
Detail Settings
Advanced Detail Settings
Solution Code

Water

Adding Water
Shoreline Creation Part 1
Shoreline Creation Part 2
Solution Code

Natural Exposure

Erosion
Rain
Thermal
Tidal
River
Wind
Wind Direction
Canyon Challenge
Solution Code

The Great Outdoors

Fog
Clouds Part 1
Clouds Part 2
Cloud Management
Cloud Painting
Using Clouds
Cloud Shadows
Sky Domes
Particles for Weather Effects Part 1
Particles for Weather Effects Part 1 - Continued
Particles for Weather Effects Part 2
Solution Code

Final Touches

Updates to Post Processing Stack for V.2018.3
Advanced Render Settings
Final Project

A Final Word From The Instructor

Final Words
Where to Now?

Screenshots

Procedural Terrain Generation with Unity - Screenshot_01Procedural Terrain Generation with Unity - Screenshot_02Procedural Terrain Generation with Unity - Screenshot_03Procedural Terrain Generation with Unity - Screenshot_04

Reviews

Alexandru
November 12, 2023
Excellent course - useful, practical content + very good presentation! I am pretty much a beginner, so not going to claim I understood most of it (yet), but it was extremely useful to be walked through the code, get challenged on doing things myself, and get introduced to procedural terrain modelling. This is one of the repositories of knowledge I know I'll be coming back to regularly.
Yumi
October 19, 2023
This course is old, so you have to know where the buttons are, but all of them exist in a different version with the same behavior.
Terrance
September 10, 2023
As always this person delivers sub par and horrible courses. It feels like she watched a few YouTube videos and thinks she knows things she does not. I gave her several tries and cant even force myself to finish either of the courses I purchased of hers. Don't waste your time or your money on this crap.
Daniel
August 23, 2023
I've taken a lot of courses in Udemy and by far Penny explain things way better than most of the courses so far. really enjoying this course!
Guido
April 25, 2023
This was not what I thought it would be. What I expected based on the title, description and available videos: Generative procedural terrain, where I can walk in a direction and the terrain will basically be generated under my feet based on some procedural foundations. Preferrably with caves and different biomes. What I got instead: A way to, at design time, use some relatively simple algorithms and heuristics to generate terrain in one Unity terrain plane, and then see whether I like what I see before going to the next layer. This uses some noise, but mostly lists of values and randomness (that is then statically stored in the Unity terrain's texture layers). This is the first of Holistic3D's courses that I don't give a 4.5 to 5 star rating (and it's my fourth Holistic3D course on Udemy). The course is a good intro into: * How Unity terrain works, its layers and LOD settings * How Unity terrain can be programmatically shaped instead of with the brushes and standard tools * Some scholarly approaches to generative terrain ...but: I'm not sure these scholarly approaches (Brownian Motion, Voronoi Tesselation, Midpoint Displacement) are all applied properly. All of them look different than any other instance of the same algorithm I see elsewhere. But the general approach is "use randomness and click a few times until you like what you see, then store that and go on". I was looking for deterministic procedural generation. Oh, and there's a "goto" in the code somewhere. That alone drops the score by half a star, easily.
Manuel
April 25, 2023
Great course, I'm learning a lot. Unfortunately, I'm using version 2021.3 and when it comes to texturing, it's not adding the textures to the terrain. It only applies the first one, and the others are not being considered. Maybe I made a mistake in something or it's a versioning issue. I'll find a solution.
Friedrich
April 15, 2023
while the course might have been useful, it seems not to apply to the newer unity versions 2021.3.22f1. I tried to follow step by step, but not even the tools are the same and unity terrain behaves totally different, maybe there are some ways to adjust, but then I haven't found them yet, but I will keep truing
Jan
March 4, 2023
Hello! I want to say thank you. I've been busy with trying to self learn procedural terrain generation through other platforms and have been extremely confused and flustered. You have my gratitude with this course. I am able to follow well and cant wait to finally make a game worthy terrain
Heinrich
February 24, 2023
Really nicely explained so far. Reaching the end of chapter two. Im barely an intermediate but I think this will help me along considerably
Pablo
January 12, 2023
I wanted to see directly a Script that creates the Terrain randomly and not an Editor but the information during the course is pretty interesting. Now I know who is Voronoi :)
Judy
November 25, 2022
I now give the rating a 4 star since I found that I can run it in and older Unity... 2020.3.26f1 on my Mac silicon didn't work for me in newer versions; would be nice to run it in a silicon version (2021 and later) Original: 2 star :Actually, the course would be great, but not updated to newer versions of unity and i cannot make it work. so sad. frustrating.
Jonas
November 22, 2022
Penny is always excellent and her content is unique in its complexity and richness! Loving the course so far :)
Dustin
September 19, 2022
The explanation of subjects assumes the viewer is a novice yet still gives a thorough and complete instruction that is not confusing or condescending. Very pleased with this course.
Andrew
September 15, 2022
An excellent course. Not only procedural code but also terrain design and custom editor tutorials in one.
Chris
July 6, 2022
I always enjoy your content but I am having a lot of fun on this one, perhaps because my skill level is so much higher now then when i began and I really understand things much better. I am somewhere between intermediate and advanced these days and your content is a big part of that, thank you for providing it.

Coupons

DateDiscountStatus
3/26/202489% OFF
working

Charts

Price

Procedural Terrain Generation with Unity - Price chart

Rating

Procedural Terrain Generation with Unity - Ratings chart

Enrollment distribution

Procedural Terrain Generation with Unity - Distribution chart
1660066
udemy ID
4/24/2018
course created date
11/20/2019
course indexed date
Bot
course submited by