The project contains some algorithms for procedural terrain generation implemented on C# for Unity.
Algorithms generate a heightmap, then a texture and a terrain based on it.
White noise represents a set of random values with no additional processing.
![white-terrain](https://private-user-images.githubusercontent.com/70700078/241579537-3d485937-f42b-4cab-8b14-671c0010d144.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDY3MzUsIm5iZiI6MTcyMDI0NjQzNSwicGF0aCI6Ii83MDcwMDA3OC8yNDE1Nzk1MzctM2Q0ODU5MzctZjQyYi00Y2FiLThiMTQtNjcxYzAwMTBkMTQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA2MTM1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ4ZDVmZGYzZGI1YjVjOWQ4OTk1NDFkMmEwZTFjNDc2ZDQ4MzM4YWY5ZTJiYTBmOGI1ZWE0MjhkMzI5YjA4ODkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Fa1ZX3L38gS0FboniJiEr-Q35krgrNxzdAC9Q5eWzAA)
Perlin noise is a type of gradient noise. It is most basic yet most customizable algorithm. Proper settings allow to achieve absolutely unique textures.
![perlin-terrain](https://private-user-images.githubusercontent.com/70700078/241579544-54fd37e1-cc21-454e-8c84-3081bf2ac4df.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDY3MzUsIm5iZiI6MTcyMDI0NjQzNSwicGF0aCI6Ii83MDcwMDA3OC8yNDE1Nzk1NDQtNTRmZDM3ZTEtY2MyMS00NTRlLThjODQtMzA4MWJmMmFjNGRmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA2MTM1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY1YmJhOWI2NDc3MzEzNzdhNzNiZmU5N2FkMzQzOTVhY2MyNTgyYzUwY2FlYTM2ZTAwNGEyNWFlY2RmODE0MzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.edflIwYXjkNfKP1YK1_KTGlNJ-dlqtIPofZ-KlAUTlU)
Diamond-Square algorithm is suitable for generating realistic-looking landscapes. It was once described as flawed due to noticeable vertical and horizontal creases at the edges, but who cares if it still generates a decent result?
![diamond-terrain](https://private-user-images.githubusercontent.com/70700078/241579551-2ac93025-1d7a-4ed5-9c2c-6b5f174795ea.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDY3MzUsIm5iZiI6MTcyMDI0NjQzNSwicGF0aCI6Ii83MDcwMDA3OC8yNDE1Nzk1NTEtMmFjOTMwMjUtMWQ3YS00ZWQ1LTljMmMtNmI1ZjE3NDc5NWVhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA2MTM1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFmYTBjYTlmMmJmYjkxNzY4ZDgyOWY0MWJlYjcyYTNiYjBkN2QzNzMwNGU4NDhmNDQ1ZWU1ODYyZTlmODc1Y2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.x-7Npo0AtF6KlGUu7mZ6dYdOR-bx9tpFy6cZxST7a3s)
Worley noise comes close to simulating textures of stone, water, or biological cells. Seriously, doesn't it look like sea waves?
![worley-terrain](https://private-user-images.githubusercontent.com/70700078/241579560-d965ea1c-461f-4f4f-a28e-1ce895380b0d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDY3MzUsIm5iZiI6MTcyMDI0NjQzNSwicGF0aCI6Ii83MDcwMDA3OC8yNDE1Nzk1NjAtZDk2NWVhMWMtNDYxZi00ZjRmLWEyOGUtMWNlODk1MzgwYjBkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA2MTM1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMwNTYyNzc3Y2QyYTRjYTI5MWYwYzk3MzdmN2RmMGE2Njg4NDAzZjNhNWY5Y2E3Y2I5ODAyNjZlNTdkNjgzNDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.SaMLJDJvbGwRqY0Wc3HF-z6kzavxPGGHIjSuyPz23-0)
- Install Unity 2021.3.21 from archive.
- Clone this repository using
git clone https://github.com/vyshnovka/procedural-generation.git
in Git Bash. - Open created folder as a project in Unity Hub.