- 3 Planets A, B, C
- Light source box E
- Space Vehicle D
Keep the above objects in ratio wthen changing window size with glutReshapeFunc
- Background skybox without translation and zooming
- Asteroid ring cloud with at least 200 random floating rocks around C
- Single texture mapping and normal mapping for A
- Single texture mapping for planet B
- Single texture mapping for space vehicle D
- Single texture mapping for rock G
- Multiple texture mapping for planet C
- Basic light rendering
- Self-rotation for planet A, B and C
- Planet B move around planet A
- Move around centre for light source E
- Move around A for space vehicle D
- Move around planet B for all rocks G
- 3 distinct viewpoints for choices, i.e. -X, +X, +Y axis
- Fog effect
- Graphical User Interface (need connect tot the actual function)
- Keyboard Interactions, i.e. 'a', 's' and 'd' for switching viewpoints
- Speed and orbital control, i.e. ↑ and ↓ for speed controlling, ← and → for changing orbit size of space vehicle D
- Mouse Interaction, i.e. zoom in and out
- Add another visible light source with Phong Illumination Model
- Collision Detection with Landmark distance / Bounding box / Bounding sphere Algorithm
- Provide extra viewpoints attached to space vehicles
- Real-time trajectory of space vehicle D with string
- Asteroid ring cloud with more than 5000 random rocks around C (with this example: https://learnopengl.com/#!Advanced-OpenGL/Instancing tried but not success)
- Shadow mapping, Environment mapping, Displacement mapping
- Background music with IrrKlang library
- [] Frames from different viewpoints to show all motions of objects
- [] Close look at the basic light rendering results
- [] Close look at normal mapping on planet A
- [] Fog effect with different visibilities
- [] 3 distinct viewpoints
- [] Bonus features shown