Procedural Generation a seminar by Martin Schmeisser and Manuel - - PowerPoint PPT Presentation

procedural generation
SMART_READER_LITE
LIVE PREVIEW

Procedural Generation a seminar by Martin Schmeisser and Manuel - - PowerPoint PPT Presentation

Procedural Generation a seminar by Martin Schmeisser and Manuel Kramer What Is Procedural Generation? Creating content based on algorithms instead of manually doing it. Small Introduction What can procedural generation be used for? - Video


slide-1
SLIDE 1

Procedural Generation

a seminar by Martin Schmeisser and Manuel Kramer

slide-2
SLIDE 2

What Is Procedural Generation?

Creating content based on algorithms instead

  • f manually doing it.
slide-3
SLIDE 3

Small Introduction

slide-4
SLIDE 4

What can procedural generation be used for?

  • Video Games
  • 3D Renders
  • Simulations
slide-5
SLIDE 5

Examples of procedural generation

  • Textures
  • Terrains

World/Terrain

Voxel based Grid based Tile based

  • Animations
  • Single Object Generation
  • Trees
  • Weapons
  • Life forms
slide-6
SLIDE 6

Which Games use procedural generation?

  • Minecraft
  • Diablo
  • Binding of Isaac (Rebirth)
  • Borderlands
  • Black Mesa ( Half-Life fan remake )
  • and almost every rogue like...
slide-7
SLIDE 7

Textures

slide-8
SLIDE 8

Perlin Noise

  • Type of Gradient noise
  • Commonly used as procedural texture in

computer graphics

  • Easy to control the paramaters
  • Vast variety of different outcomes
slide-9
SLIDE 9

Perlin Noise

  • Pros for perlin noise:
  • Fast in generating
  • Easy to control
  • Cons for perlin noise
  • Tends to create same patterns all over again
slide-10
SLIDE 10

Examples of Perlin Noise

slide-11
SLIDE 11

Example Of Procedural Terrain Texturing

[ Live Demo ]

slide-12
SLIDE 12

World And Terrain Generation

There are three commonly used ways of generating worlds.

  • Grid based terrains
slide-13
SLIDE 13

Grid Based Terrains

  • Using a plane in 3D space to generate a

terrain

  • Each vertex gets a height assigned
  • Height is calculated with perlin noise
  • Texturing is done with procedural texturing
slide-14
SLIDE 14

World And Terrain Generation

There are three commonly used ways of generating worlds.

  • Grid based terrains
  • Voxel based worlds
slide-15
SLIDE 15

Voxel Based Worlds

  • Created with voxels
  • Point in 3D environment grid
  • Mostly represented with cubes
  • Split up into “Chunks”
  • X * X * Y areas
  • Can it be infinite?
  • yes and no at the same time
  • limited space for saving chunks
  • overwriting chunks when it gets too big
slide-16
SLIDE 16

Voxel Based Worlds

  • How to generate the actual world?
  • Using 3D perlin noise
  • everything < 0 is air
  • everything >= 0 is ground
  • The right resolution is crucial
  • Too high of a resolution can cause:
  • Performance issues
  • Floating “boxes”
  • Split the world into the chunks
  • e.g. use one noise map per chunk
  • e.g. split one noise map into mulitple chunks
slide-17
SLIDE 17

World And Terrain Generation

There are three commonly used ways of generating worlds.

  • Grid based terrains
  • Voxel based worlds
  • Tile based worlds
slide-18
SLIDE 18

Tile Based Worlds

  • Based on predefined tiles that can make up

the landscape

  • Walls, Forest, Houses etc.
  • Tile information, which tiles fit together?
  • Different wall parts, grass, sky
  • Where is a passage?
  • Created with recursive algorithm
  • Each tile spawns new tiles for their openings
  • Each tile checks if a tile can be placed
  • Internal integer can define if the world is big enough
slide-19
SLIDE 19

Tile Based worlds

But is it that simple? No there needs to be a lot taken care of!

  • Just checking for a point to attach new tile

to is not enough

  • Checking the area for other parts
  • e.g. there is a gap between two tiles → find a tile

which fits for both ends.

  • Make sure that it has an end
  • don’t let it generate forever!
slide-20
SLIDE 20

World Generation In General

  • Has to be fast
  • Should not take to much processing power
  • Combination of random and crafted
  • Create random worlds with a charm to explore
  • Hard to prevent glitches
slide-21
SLIDE 21

Single Object Generation

  • Pick an Object
  • Houses, Trees, Rocks, Weapons
  • Define those Object
  • How does the Object look like
  • Limit the range of the parameters
  • Describe the textures that can be used
  • Predefine parts
  • One way to achieve the generation is to create

different parts that match together ( similiar to tiles )

slide-22
SLIDE 22

Example For Object Generation (Borderlands)

slide-23
SLIDE 23

Single Object Generation

slide-24
SLIDE 24

Animations

  • Animation based on the Terrain and the

possibilities of the Character

  • Dynamical moving instead of predifined
  • walking up and down stairs/slopes
  • climbing
  • Many games use a simple variant of

procedural animation

  • Even turning a characters head to a specific point is

procedural animated

slide-25
SLIDE 25

Animations

  • Even particles are procedural animations
  • Fire
  • Cloth,
  • Fur
  • Water can be generated this way as well
  • Morrorwind used that technology
  • Raimonds water simulation is part of this

as well

slide-26
SLIDE 26

Animations

slide-27
SLIDE 27

Life Forms

  • A bit like object generation
  • predifined races and rough looks
  • different body parts
  • textures that match the races body parts
  • A rigged body
  • for every body part there needs to be a rig that

already works

  • generated on the fly
slide-28
SLIDE 28

Example Of The Use Of Life Forms

  • Starbound (Game)
  • Creating unique monsters the player has to

encounter

  • Black Mesa (Game / Halfe-Life remake)
  • Zombie and character parts are provided and used

to create unique characters

  • No Man’s Sky (Game)
  • Create every life form from scratch on run time
slide-29
SLIDE 29

Examples Of Life Forms (Starbound)

slide-30
SLIDE 30

A Look Into The Future