Skip to Main Content
Lightning Talk Beginner MIT License (demo code), CC BY-SA 4.0 (slides)

Is Terrain Generation Actually Hard?

Proposal status is Review Pending
Session Description

Is terrain generation actually hard? I’ll build a 3D landscape from scratch in Godot, an open source game engine, and find out.

We’ll start with Perlin noise, a function that turns coordinates into smooth, natural looking heights. From those heights we’ll build a mesh, learning what vertices, triangles and an index buffer are. Then we’ll add detail by layering noise at different scales, color the terrain based on how steep each surface is, and fix the lighting using surface normals. The math involved is a cross product and a dot product, and I’ll explain both.

By the end, you’ll have a terrain you can tweak and a clear picture of how games generate landscapes.

Key Takeaways
  1. A landscape can be built from three things: a noise function, a grid of points, and triangles.
  2. Layering noise at different scales is what gives terrain realistic detail.
  3. Coloring by slope looks far more natural than coloring by height.
  4. Surface normals are what make the lighting look right.

References

Session Categories

Tutorial about using a FOSS project
Talk License: MIT License (demo code), CC BY-SA 4.0 (slides)