Summary and Team Members
We plan on creating an infinite terrain effect. There will be mountains, water, grass, and snow, users will be able to move around the infinite landscape.Built by Ian Dong, Zack Oon, Colin Steidtmann, and Satvik Muddana.
Problem Description
- Create a visually appealing and realistic infinite terrain effect with varying landscapes (mountains, water, grass, snow) that users can navigate.
- This is important for creating immersive virtual environments in games or simulations.
- The challenge lies in generating a seamless and diverse terrain that can be explored without visible repetition while also ensuring smooth movement transitions between different terrain types.
- Use procedural generation techniques to create the terrain.
- Choose vegetation/surface material (texture) based on the elevation of the terrain (high elevation = snow, low elevation = water).
- Use a streaming approach to load terrain data efficiently, prioritizing chunks that are closer to the user's current position.
- Implement a control system for the user to navigate the terrain
Problem
Importance
Challenge
Proposed Solution
Goals and Deliverables
- We must create an infinite terrain of mountains and valleys with the vegetation/texture defined by the virtual environment elevation.
- We must deliver a video demo that shows a fly-over of the terrain.
- It may not look realistic, but it must be recognizable as mountains/snow/water/grass
- Aspirations:
- We hope to make it look super realistic.
- We hope to use some shading techniques to make it look more realistic.
- We hope to add realistic clouds, perhaps clouds that the user moves through (adding rain would be a bonus).
- Speed of loading new terrain chunks. We hope for it to be constant throughout, not slow down for any reason no matter how much the user moves through the virtual world. We hope for it to be fast.
- Measure how long we keep the simulation running (i.e. we would prune areas or somehow make far away places that have already been visited take up less space?)
What We Plan to Deliver
What We Hope to Deliver
Measuring our Performance
Schedule
Week 1
-
Learn up to and including model loading in OpenGL
-
Understand the tutorial in rendering and generating the terrain
-
Create a window that will display a plane perturbed by a given height map (each do on our own)
Week 2
-
Start coding
-
Develop a program that generates an infinite terrain (height map) from a perlin noise function
-
Add coloring based on height
-
Start figuring out how to load models into the terrain (fit certain conditions + add randomness)
Week 3
-
Modify code from week 2 to go from coloring -> assets such as grass, rocky terrain, etc.
-
Continue loading models into the terrain
Week 4
-
Work on shaders for certain assets if needed
-
Film as needed
Resources
-
Game
Development in OpenGL
- Though it already has a backend + starting point, so we might just use this as inspiration rather than following along, as we will be starting from scratch.
- We have some elementary blender experience, but free models as well can be found online on itch.io or planning on this this one (the assets are .obj files).