Terrain Synthesis Using Noise

Terrain Synthesis Using Noise

View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Trepo - Institutional Repository of Tampere University Terrain synthesis using noise Tuomo Hyttinen University of Tampere Faculty of Natural Sciences Computer Science M.Sc. Thesis Supervisor: Timo Poranen May 2017 University of Tampere Faculty of Natural Sciences Computer Science Tuomo Hyttinen: Terrain synthesis using noise M.Sc. thesis, 51 pages May 2017 Noise functions are versatile base functions used in many procedural generation methods. They can produce natural-like patterns usable in procedural textures, models and animations. They have been extensively adapted in procedural terrain implementations in games and other applications. Noise-based procedural terrains offer many advantages over static terrain models but designing such terrains is largely unintuitive by nature. Whereas traditional terrain models can be designed, e.g., in spatial editors, procedural terrains are implemented in algorithms. The purpose of this thesis is firstly to evaluate noise functions in the context of procedural terrain generation and especially example based procedural terrain synthesis. Secondly, a novel example based procedural terrain synthesis method is presented. A prototype application implementing the method was also constructed and evaluated. The prototype is a practical solution for example based procedural terrain design, aiming to bridge the gap between intuitive virtual terrain design and the advantages of procedural terrain functions. Key words and terms: noise, procedural terrains, example-based terrain synthesis Contents 1. Introduction......................................................................................................................................1 2. Noise function fundamentals...........................................................................................................4 2.1. Defining noise..........................................................................................................................4 2.2. Simple value noise function.....................................................................................................5 2.3. Comparison to other methods..................................................................................................9 2.4. Noise classifications..............................................................................................................10 3. Noise functions...............................................................................................................................11 3.1. Perlin noise.............................................................................................................................11 3.2. Simplex noise.........................................................................................................................13 3.3. Wavelet noise.........................................................................................................................15 3.4. Worley noise..........................................................................................................................18 3.5. Gabor noise............................................................................................................................18 3.6. Comparison of the noise functions........................................................................................19 4. Related work on procedural generation.........................................................................................21 4.1. Noise-based procedural terrains.............................................................................................21 4.2. Procedural noise by example.................................................................................................23 5. Procedural terrain by example.......................................................................................................26 5.1. Fractal sum and turbulence....................................................................................................26 5.2. Noise redistribution................................................................................................................27 5.3. Reference height maps...........................................................................................................28 5.4. Extracting and reproducing terrain features...........................................................................29 5.4.1. Generating noise layer....................................................................................................29 5.4.2. Automatic layer masking................................................................................................33 5.4.3. Procedural terrain storage format...................................................................................35 5.5. From height map to terrain model.........................................................................................37 5.6. User interface for procedural terrain design..........................................................................39 5.7. Result assessment..................................................................................................................42 6. Conclusions....................................................................................................................................47 1 1. Introduction Noise is a function that takes an n-dimensional point, typically n=1, n=2 or n=3 and returns a real number [Perlin, 2001]. It's pseudo-random by nature, meaning that the result appears to be random, but given the same input coordinates the function always returns the same value. Noise is continuous and non-periodic – it covers the entirety of n-space without seams or repetition [Lagae et al., 2010a]. Depending on the noise implementation and parameters, various patterns can be seen in the result. For example, by using a two-dimensional noise one could produce a grayscale image that has seemingly random lighter and darker areas, with smooth transitions in between. Procedural noise can be used for creating patterns automatically and on the fly, rather than, for example, drawing a texture by hand [Smelik et al., 2009]. They often require very little memory to be executed and are randomly accessible, meaning that they can be evaluated independently for each input point. The random access feature, among its other benefits, makes extensive parallelism possible [Lagae et al., 2010a]. Perlin noise is a widely used and referenced noise function that was originally designed by Ken Perlin related to his work with the special effects in Disney's science fiction film Tron in 1982. Later Perlin was awarded an Oscar for his work with computer generated imagery in movies. Perlin noise was originally designed for creating textures [Perlin, 1985], but noise functions also have usages in many other areas of computer graphics. Procedural generation, often utilizing Perlin noise and other noise functions, is widely used today in software. Noise functions have been used for creating natural-like content such as textures, models and animations in 3D modeling software, animation films and other computer graphics applications [Lagae et al., 2010a]. In games it has been used for decades for creating large game worlds [Smelik et al., 2009]. Noise functions are often used in games for creating large virtual worlds, including their terrain topology, texturing and cave systems etc. [Santamaría-Ibirika et al., 2014]. Minecraft, released in 2011, is perhaps today's most well known example of using noise functions and procedural terrain generation in games. It's the best selling video game of all time, having sold over hundred million copies world wide (including mobile, pc and console versions sales) [Hill, 2016]. It features a near-infinite procedurally generated world. As seen in Figure 1, the game world features a variety of visually distinct, procedurally generated landscapes. The game world is created by using several 2 and 3- dimensional Perlin noise functions [Persson, 2011]. Because of the procedural noise based approach the terrain can be generated in chunks as the player advances in the game world and the resulting terrain is the same regardless of, say, from which direction the player approaches a certain area. There are also many other voxel-based games with procedurally generated worlds – a popular gaming platform Steam even lists “Procedural generation” as its own genre of games. Especially indie-developers seem to have adopted procedural generation. It makes creating large, interesting game worlds possible without the massive work of designing and modeling them manually. 2 Figure 1: Procedural terrain examples from Minecraft (left) and No Man's Sky (right) [http://minecraft.gamepedia.com, http://nomanssky.gamepedia.com]. No Man's Sky (2016), also an indie game, is another example of extensive use of procedural generation. It was four years in production and highly anticipated before release. The game world of No Man's sky is an entire universe, containing 18 quintillion planets that can be visited by player [Parkin, 2014]. Planets in turn are procedurally generated, each containing a planet sized world to explore. Examples of the procedurally generated terrain are shown in Figure 1. The game can be considered a commercial success [Yin-Poole, 2016], but it received crushingly negative reviews shortly after release mostly due perceived lack of promised gameplay

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    54 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us