Generating Terrains via Marching Cube Algorithm for Games

Preview:

DESCRIPTION

Generating Terrains via Marching Cube Algorithm for Games. Kethan Tellis Adam Smith Chris Barakian Ravi Vaishnav. Game Terrains. How can we create more interesting game terrains?. Game Terrains Methods. Height maps . Game Terrains Methods. Height maps. Procedurally Generated. - PowerPoint PPT Presentation

Citation preview

Generating Terrains via Marching Cube Algorithm

for Games

Kethan Tellis Adam Smith

Chris BarakianRavi Vaishnav

Task Challenge

\nted

Achievements Demo

Game Terrains

How can we create more interesting game terrains?

Task Challenge

\nted

Achievements Demo

Game Terrains Methods

Height maps

Task Challenge

\nted

Achievements Demo

Game Terrains Methods

Height maps

Procedurally Generated

Task Challenge

\nted

Achievements Demo

Game Terrains Methods

Via Geometry Shaders

Height maps

Procedurally Generated

Task Challenge

\nted

Achievements Demo

Game Terrains Methods

Scanning Models

Via Geometry Shaders

Height maps

Procedurally Generated

Task Challenge

\nted

Achievements Demo

Game Terrains Methods Drawbacks

Heightmaps• Lack of complexity in environment (No caves /

tunnels)

Procedurally Generated• Can’t be saved and reused. Gameplay is inconsistent

Geometry Shaders• Difficulty in collision detection • High computational costs

Scanning Models• Difficult to create• Costly in time and resources

Challenge

\nted

Achievements DemoTask

Complex, Reusable, Cheap Terrains

Perlin Noise

Marching Cubes Algorithm

Challenge

\nted

Achievements DemoTask

Perlin Noise Implementation

Octaves• Number of octaves increases the amount of

the jitter around the lowest frequency

Alpha• Increases / Decreases amplitude of certain

frequencies, bigger changes in terrains

Beta• Changes how much weight is granted to higher

frequencies, more sharp deviations in terrain

Frequency• Amplifies the fluctuations in the amount of

jitter

Challenge

\nted

Achievements DemoTask

Perlin Noise Implementation

Octaves• Number of octaves increases the amount of

the jitter around the lowest frequency

Alpha• Increases / Decreases amplitude of certain

frequencies, bigger changes in terrains

Beta• Changes how much weight is granted to higher

frequencies, more sharp deviations in terrain

Frequency• Amplifies the fluctuations in the amount of

jitter

Challenge

\nted

Achievements DemoTask

Perlin Noise Implementation

Octaves• Number of octaves increases the amount of

the jitter around the lowest frequency

Alpha• Increases / Decreases amplitude of certain

frequencies, bigger changes in terrains

Beta• Changes how much weight is granted to higher

frequencies, more sharp deviations in terrain

Frequency• Amplifies the fluctuations in the amount of

jitter

Challenge

\nted

Achievements DemoTask

Marching Cubes Implementation

Algorithm / Look-Up Table• Actually algorithmically described all 256 cases

Face Normals / Winding Order• Correctly had face normals face away from

bounded density areas

Vertex Normals• Achieved weight averaged normals for

verticies by comparing to neighbors

OBJ Export• Allowed surface to be exported as OBJ file for

loading into Maya and eventually games

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Progression Images

Challenge

\nted

Achievements DemoTask

Marching Cubes Implementation

Mesh Construction• Built lookup table of each case• Built final mesh by adding position

OpenGL Implementation• Used Vertex Arrays for speed increase• GLSL for custom shading

Challenge

\nted

Achievements DemoTask

Q & A

Demo

Challenge

\nted

Achievements DemoTask

Q & A

Questions?

Recommended