SlideShare a Scribd company logo
Procedural Land Generation
24th August 2018
Perlin Noise
● Created by Ken Perlin for Tron in 1982
● Simplex Noise 2001
Perlin Noise
● Random value between 0 and 1
● Deterministic, will always produce the same value at the same time
● Equation of values over time
Perlin Noise
● Can still seem random depending on the sample time
● Offset and seed to change time sample placement
2D Perlin Noise
3D noise also used for depth
(Minecraft)
Uses
● Natural behaviours
http://localhost:8080/src/
● Terrain generation Demo
○ Show Offset
○ Seed
● Many more..
Octaves
● Lacunarity (2)
● Increases the frequency
● For each octave:
○ Starting from 0
○ Increase the power by 1
Octaves result
● Persistence (0.5)
● Decreases the amplitude
● For each octave:
○ Starting from 0
○ Increase the power by 1
● Back to unity
Midpoint displacement
● Find Corners
● Shove in random values
2 8
0 3
Midpoint displacement
● Find Corners
● Shove in random values
● Fill the edge with the average
value between the numbers
○ Add a random value to the result
2 5 8
1 5.5
0 1.5 3
Midpoint displacement
● Find Corners
● Shove in random values
● Fill the edge with the average
value between the numbers
○ Add a random value to the result
● Fill the center using the same
method
2 5 8
1 3.3 5.5
0 1.5 3
Midpoint displacement
● Find Corners
● Shove in random values
● Fill the edge with the average
value between the numbers
○ Add a random value to the result
● Fill the center using the same
method
● Fill the remaining values with
progressively smaller squares
2 3.5 5 8
1.5 2.83 4.15
1 2.15 3.3 5.5
0 1.5 3
Midpoint displacement
● Map size: 2n +1
○ So we can set the middle
● Looks great
● http://stevelosh.com/blog/2016/
02/midpoint-displacement/
Midpoint Displacement - Seems
Diamond Square
● Calculate the center by average
the corners
1 2 3
5 5 5
9 8 7
Diamond Square
● Calculate the center by average
the corners
● Then use half the first four
diamonds around the edge
1 3 3
5 5 5
9 8 7
Diamond Square
● Calculate the center by average
the corners
● Then use half the first four
diamonds around the edge
1 3 3
5 5 5
9 8 7
Diamond Square
● Calculate the center by average
the corners
● Then use half the first four
diamonds around the edge
● Then diagonal again
1 3 3
3 4
5 5 5
7 6
9 8 7
Diamond Square
● Calculate the center by average
the corners
● Then use half the first four
diamonds around the edge
● Then diagonal again
● Then diamonds
1 3 3
3 4 4
5 5 5
7 6
9 8 7
Diamond Square
Voronoi Tessellation
Resources
● Procedural Landmass Generation (E01 … E11)
○ https://www.youtube.com/watch?v=wbpMiKiSKm8
● KhanAcademy
○ https://www.khanacademy.org/computing/computer-programming/programming-natural-
simulations/programming-noise/a/perlin-noise
● Nature of code
○ Daniel Shiffman: https://natureofcode.com/
● Udemy: Procedural Terrain Generation
○ https://www.udemy.com/procedural-terrain-generation-with-unity/learn/v4/
● Steve Losh: http://stevelosh.com/blog/2016/02/midpoint-displacement/

More Related Content

More from Green Custard

Green Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious ArgumentsGreen Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious Arguments
Green Custard
 
Green Custard Friday Talk 8: GraphQL
Green Custard Friday Talk 8: GraphQLGreen Custard Friday Talk 8: GraphQL
Green Custard Friday Talk 8: GraphQL
Green Custard
 
Green Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product DesignGreen Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product Design
Green Custard
 
Green Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native Performance
Green Custard
 
Green Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog TrialsGreen Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard
 
Green Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in GamesGreen Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in Games
Green Custard
 

More from Green Custard (6)

Green Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious ArgumentsGreen Custard Friday Talk 9: Software Religious Arguments
Green Custard Friday Talk 9: Software Religious Arguments
 
Green Custard Friday Talk 8: GraphQL
Green Custard Friday Talk 8: GraphQLGreen Custard Friday Talk 8: GraphQL
Green Custard Friday Talk 8: GraphQL
 
Green Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product DesignGreen Custard Friday Talk 7: Scientific Product Design
Green Custard Friday Talk 7: Scientific Product Design
 
Green Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native PerformanceGreen Custard Friday Talk 5: React-Native Performance
Green Custard Friday Talk 5: React-Native Performance
 
Green Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog TrialsGreen Custard Friday Talk 3: Extreme Sheepdog Trials
Green Custard Friday Talk 3: Extreme Sheepdog Trials
 
Green Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in GamesGreen Custard Friday Talk 2: Technology in Games
Green Custard Friday Talk 2: Technology in Games
 

Recently uploaded

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 

Green Custard Friday Talk 13: Procedural Land Generation