In this assignment you will extend your program from Assignment 3 by adding a user-controlled camera and rendering the scene from different points of view.
As you will be adding more features into your program, it is recommended that you create a separate project for this.
Also, please give the program and project a more descriptive name than “Scenegraphs”.
Part 1: Drone Camera (60 points)
In this part you will add a drone camera to your scene. The drone camera will be keyboard-controlled, and can be used to interactively fly around in your scene. This camera can also be “seen” from another camera’s view point.
The camera should have the following capabilities:
- The camera should move up without turning using the “up” arrow key.
- The camera should move down without turning using the “down” arrow key.
- The camera should move left without turning using the “left” arrow key.
- The camera should move right without turning using the “right” arrow key.
- The camera should turn left in its place using the “a” or “A” key.
- The camera should turn right in its place using the “d” or “D” key.
- The camera should turn up in its place using the “w” or “W” key.
- The camera should turn down in its place using the “s” or “S” key.
- The camera should tilt right in its place using the “f” or “F” key.
- The camera should tilt left in its place using the “c” or “C” key.
You must draw the actual camera using a sphere for its position and three “arrows” showing its orientation (up, right, opposite of gaze). An arrow is made of a cylinder with a cone attached to its end. Position the actual camera just outside the sphere so that the sphere does not block its view when you render it.
Part 2: Picture-in-picture (30 points)
Your program now has two cameras: the stationary one from the previous assignment that shows your whole scene and the drone camera (discard the turntable camera).
In this part you must create a rendering that renders the scene from the “current” camera into the whole window, and shows the view from the “other” camera in an inset in the top right corner of the window. Using the “Space” bar you should be able to toggle the “current” camera between the drone and the stationary camera.
Program preparation and README file (10 points)
Submit a README file with your project. The README file should summarize what features work in your program.
What to submit
Submit the IntelliJ/Qt project folder set up correctly with your scene files you used as a zipped file (make sure you include the README file).