1 / 28

Generating Terrains via Marching Cube Algorithm for Games

Dive into the world of game terrains by exploring the methods of height maps, procedurally generated terrains via geometry shaders, Perlin noise, and the implementation of Marching Cubes algorithm. Overcome drawbacks, learn about complex terrains, and understand the key parameters of Perlin noise for creating immersive game environments. Discover how to construct meshes, implement OpenGL for custom shading, and export terrain surfaces for seamless integration with games.

Télécharger la présentation

Generating Terrains via Marching Cube Algorithm for Games

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Generating Terrains via Marching Cube Algorithm for Games KethanTellisAdam SmithChris BarakianRavi Vaishnav

  2. Game Terrains How can we create more interesting game terrains?

  3. Game Terrains Methods Height maps

  4. Game Terrains Methods Height maps Procedurally Generated

  5. Game Terrains Methods Height maps Procedurally Generated Via Geometry Shaders

  6. Game Terrains Methods Height maps Procedurally Generated Via Geometry Shaders Scanning Models

  7. 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

  8. Complex, Reusable, Cheap Terrains Perlin Noise Marching Cubes Algorithm

  9. PerlinNoise 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

  10. PerlinNoise 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

  11. PerlinNoise 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

  12. 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 normalsfor verticiesby comparing to neighbors • OBJ Export • Allowed surface to be exported as OBJ file for loading into Maya and eventually games

  13. Progression Images

  14. Progression Images

  15. Progression Images

  16. Progression Images

  17. Progression Images

  18. Progression Images

  19. Progression Images

  20. Progression Images

  21. Progression Images

  22. Progression Images

  23. Progression Images

  24. Progression Images

  25. Progression Images

  26. 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

  27. Q & A Demo

  28. Q & A Questions?

More Related