Procedural Terrain Generation with Unity Updated for 2024!
- Descrição
- Currículo
- FAQ
- Revisões
Updated for Unity in 2024
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
-
Water and new to 2024
-
Working with Multiple Terrain Objects
-
Dealing with URP and HDRP
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.
-
1How to Study This CourseTexto
-
2Join the H3D Student CommunityVídeo Aula
H3D has a bustling online student community. Here's how to get involved.
-
3Contacting H3DTexto
How to contact us
-
4WelcomeVídeo Aula
This video is a short introduction to the course content.
-
5FAQsTexto
This article addresses common general questions about my courses.
-
6Getting Started: Setting up Unity for Terrain GenerationVídeo Aula
In this lecture students will learn how to get setup in Unity for different renderer pipelines to create a Terrain object. An introduction to the built in terrain tools will then be covered including height creation and texturing.
-
7Manually Adding Texture LayersVídeo Aula
In this lecture students will learn how materials are created and used to colour a terrain.
-
8Landscape Reproduction ChallengeTexto
Landscape Reproduction Challenge
-
9A Word about BrushesVídeo Aula
In this video we will discuss the settings that a brush in the terrain tools can have to give differing surface effects in addition to looking at the tiling size of materials.
-
10Adding Trees to a TerrainVídeo Aula
In this video students will learn how to add trees to a terrain as well as create random variations in the trees.
-
11Adding Details to a TerrainVídeo Aula
In this video students will learn how to add extra details, such as grass, rocks or bushes to the surface of a terrain.
-
12Design Principles for Terrain AestheticsVídeo Aula
In this video students will learn about the design principles that make for a realistic and well balanced looking terrain.
-
13Important Terrain SettingsVídeo Aula
In this lecture students will learn about some of the key terrain values that we will be working with throughout the course and what their values mean.
-
14Getting Ready to Create a Custom EditorVídeo Aula
In this lecture students will learn how to setup their project to create a custom inspector editor that they can use to begin working on procedural generation of the terrain.
-
15Generating Random Heights Part 1Vídeo Aula
In this lecture students will learn how to begin their first procedural generation algorithm to generate random heights on the terrain.
-
16Generating Random Heights Part 2Vídeo Aula
In this lecture students will complete the code to create random heights and be challenged to write code that can reset the terrain heights back to 0.
-
17Loading Height Map Data from an ImageVídeo Aula
In this lecture students will learn how to use a greyscale image to set the heights of a terrain from the colour values of the pixels.
-
18Test Your Knowledge: Height SettingVídeo Aula
In this lecture students will be challenged on their knowledge of heightmap and asked to write methods that work with the height values contained within.
-
19Want to Refactor?Vídeo Aula
In this lecture students will be challenged to think about how they can refactor the codebase as they are developing it.
-
20Noise TheoryVídeo Aula
In this lecture students will learn about the mathematical theory of noise and how it can be used in generating realistic terrain heights.
-
21Implementing Simple Perlin NoiseVídeo Aula
In this lecture students will learn how to implement a simple Perlin noise algorithm and explore it's variety of settings for different terrain effects.
-
22Brownian MotionVídeo Aula
In this lecture students will learn about the Brownian Motion algorithm and write up code that combines several Perlin Noise curves into one.
-
23A Quick Note about the GUITable CodeVídeo Aula
In this lecture we will quickly cover some helpful code that can be used with the GUI Editor to improve the layout.
-
24Multiple Perlin NoiseVídeo Aula
In this lecture students will learn how to use more than one noise wave to create more interesting looking landscapes.
-
25Test Your Knowledge: Ridge NoiseVídeo Aula
In this video students will be challenged to create a ridge noise method that will replicated a desert scene with sharpened ridges on sand dunes.
-
26What is Voronoi TessellationVídeo Aula
In this video students will learn about voronoi tessellation and how the effect can be seen in all manner of natural phenomena.
-
27Creating Mountain PeaksVídeo Aula
In this video students will be challenged to start writing the code for a voronoi algorithm before Penny demonstrates how to add random mountain peaks and build up the slopes.
-
28Modifying Mountain SlopesVídeo Aula
In this lecture students will learn about differing mathematical formula that can be integrated into terrain generation to add extra interest to a plane landscape.
-
29Multiple Random PeaksVídeo Aula
In this video students will be challenged to add further controls to their voronoi tessellation algorithm and be shown how to use them to make the landscapes appear more realistic.
-
30Adding a Choice of Function TypesVídeo Aula
This lecture will take you through the process of integrating multiple functions into the code to use with the Voronoi peaks.
-
31Test Your Knowledge: Voronoi & PerlinVídeo Aula
In this video students will be challenged to modify the Voronoi algorithm to include a Perlin noise calculation to give interest to the sides of peaks.
-
32Introduction to Midpoint DisplacementVídeo Aula
In this video students will learn how the midpoint displacement algorithm works.
-
33The Diamond StepVídeo Aula
In this video students will follow along as the code for a diamond step algorithm is added to the terrain generation code.
-
34The Square Step MethodVídeo Aula
In this video students will learn how to extend the midpoint displacement algorithm by implementing the square step method.
-
35Smoothing Part 1Vídeo Aula
In this video students will learn how to use a blurring algorithm like that used on images, to smooth a terrain.
-
36Smoothing Part 2Vídeo Aula
In this video students will follow along as the smoothing algorithm is completed.
-
37SplatmapsVídeo Aula
In this video students will learn how to setup up their project code ready to add textures onto the terrain. The concept of splatmaps will be introduced and explained.
-
38Coding for Terrain LayersVídeo Aula
In this video students will learn how to load a texture to become a splatmap and then paste that texture across the surface of the terrain.
-
39Specifying Texture HeightsVídeo Aula
In this video students will learn how to set differing heights for placing the different splatmaps.
-
40Overlapping with NoiseVídeo Aula
In this video students will learn how to use Perlin Noise to overlap textures where they intersect at the height cutoff settings.
-
41Blending Texture OverlapsVídeo Aula
In this video students will discover how to blend the alpha values used for the splatmaps in areas where textures overlap.
-
42Controlling Tile SizeVídeo Aula
In this video students will learn how to add tile sizing and offsets to the terrain layers.
-
43Adding Normal Maps to Terrain LayersVídeo Aula
In this video students will be challenged to add a normal map to the terrain layer.
-
44Running out of Room in the Inspector Editor?Vídeo Aula
In this video students will learn how to make more room in the Inspector by adding a scrollbar for when the terrain editor becomes to large.
-
45Texturing on a Steep TerrainVídeo Aula
In this video students will learn how to add textures on different parts of a terrain based on the steepness.
-
46Test Your Knowledge: TexturingVídeo Aula
In this video students will be challenged to come up with a way to set black areas left on a terrain to a default texture.
-
47Working with Tree Prototypes Part 1Vídeo Aula
In this lecture students will start to begin writing the editor code for placing trees onto the surface of the terrain.
-
48Working with Tree Prototypes Part 2Vídeo Aula
In this lecture students will learn how to set the heights at which trees are placed on the surface of the terrain.
-
49Working with LayersVídeo Aula
In this video students will learn how to programmatically add a tag to a game object.
-
50Setting Tree HeightsVídeo Aula
In this video students will learn how to use raycasting to position trees correctly on the terrain.
-
51Test Your Knowledge: VegetationVídeo Aula
In this video students will be challenged to use the minimum and maximum values for tree growth at heights and slopes to place the trees on the terrain.
-
52Adding DetailsVídeo Aula
In this lecture students will learn how to setup their projects to start adding details onto the surface of the terrain.
-
53Setting Heights and Slopes for Detail PositionsVídeo Aula
In this lecture students will learn how to setup the code for determining the heights and slopes for the positioning of details.
-
54Terrain Detail Setting SpecificsVídeo Aula
In this lecture students will learn about the differing detail scatter modes available on the terrain and how to code for each one.
-
55Working with Detail PropertiesVídeo Aula
-
56Adding WaterVídeo Aula
In this video students will learn how to add a URP water plane into the scene and use the Inspector Editor to position and size it.
-
57Adding Water Via the Terrain EditorVídeo Aula
-
58ErosionVídeo Aula
In this video students will learn how erosion moulds the face of a terrain for realistic effects.
-
59RainVídeo Aula
In this video student will learn how rain erosion can be simulated on a procedural terrain.
-
60ThermalVídeo Aula
In this video students will learn how thermal effects are added to the erosion of the surface of a terrain.
-
61TidalVídeo Aula
In this video students will learn how to use the level of the water to erode away the terrain at the shoreline.
-
62RiverVídeo Aula
In this video students will learn how to create a river system that erodes away at the terrain surface.
-
63WindVídeo Aula
In this video students will learn how wind erodes a terrain and how it can be simulated with code.
-
64Wind DirectionVídeo Aula
In this video students will learn how to simulate wind erosion by considering the direction the wind comes from.
-
65Test Your Knowledge: Canyon ChallengeVídeo Aula
In this video students will be challenged to use the techniques learned in this section to develop their own canyon creation tool.
-
66FogVídeo Aula
In this video students will learn how to add different types of fog to a scene and gain an understanding about how fog and the sky work together.
-
67A Word About CloudsVídeo Aula
In this video students will learn about a variety of ways to place clouds into their scene and go through the practical steps to add a cloud plane and skydome.
-
68Making Your Own Clouds Part 1Vídeo Aula
In this video students will learn how to setup their project to create a cloud toy like function in the terrain editor.
-
69Making Your Own Clouds Part 2Vídeo Aula
In this video students will learn how to create multiple clouds and work with particle systems to move the clouds across the sky.
-
70Cloud ManagementVídeo Aula
In this video students will get the clouds moving across the terrain at different speeds and set them to respawn at the starting location.
-
71Cloud PaintingVídeo Aula
In this video students will learn how to apply different colours to the clouds to give them a darker shade on the bottom surface.
-
72Cloud ShadowsVídeo Aula
In this video students will learn how to use the URP Decal Projector to cast shadows onto the surface of the terrain from the clouds.
-
73Cloud ChallengeVídeo Aula
In this video students will be challenged to have the clouds set to random sizes between a minimum and maximum value.
-
74Producing Rain Particles Part 1Vídeo Aula
In this video students will learn how to get setup to create rain with a particle system.
-
75Producing Rain Particles Part 2Vídeo Aula
In this video students will follow along to complete the rain particle system complete with splashback from the terrain.
-
76Producing Rain Particles Part 3Vídeo Aula
In this video students will learn how to add a first person controller to their terrain and attach the rain particle system to it.
-
77Working with Multiple TerrainsVídeo Aula
In this video students will learn how to create multiple terrain objects and then begin adding perlin noise to modify their heights.
-
78Adding Perlin Heights to Multiple TerrainsVídeo Aula
In this video students will learn how to put world based Perlin noise height values onto a system with multiple terrains.
-
79Fixing Perlin Height AlignmentVídeo Aula
In this video students will learn why they can get Perlin height alignment issues when working across multiple terrains.
-
80Joining the SeamsVídeo Aula
In this video students will learn how to ensure the seams where terrains meet have exactly the same height values.
-
81Offsetting PerlinVídeo Aula
In this video students will learn how to avoid the perlin noise mirroring issue that occurs around (0,0,0).