Description
Implement a basic OpenGL viewer. This viewer will also be used in your future class assignments.
-
- You have to implement all requirements in a single program. This assignment DOES NOT require each requirement to be a separate program.
- The window size doesn’t need to be (480, 480). Use the larger window that is enough to see the details of the viewer.
- Requirements
- Manipulate the camera with mouse movement (70 pts)
- Refer the camera manipulation of Blender software.
- https://www.blender.org/download/
- The camera of your program should initially look at a target point, similar to that of Blender.
- Initialize the target point to the origin (0, 0, 0)
- Provide the following three camera control operations.
- Orbit: Rotate the camera around the target point by changing azimuth / elevation angles. (MMB (mouse middle button) in Blender) (20 pts)
- Do not rotate the camera about a vector from the camera to the target point.
- Panning: Move both the target point and camera in left, right, up and down direction of the camera (Shift-MMB in Blender) (20 pts)
- More specifically, translate both the target point and camera along u axis (left & right) and v axis (up & down) of the camera frame.
- Zooming: Move the camera forward toward the target point (zoom in) and backward away from the target point (zoom out) (Ctrl-MMB in Blender) (15 pts) A. More specifically, translate the camera along w axis of the camera frame.
- You MUST use the following mouse movement:
- Orbit: Click mouse left button & drag
- Panning: Click mouse right button & drag
- Orbit: Rotate the camera around the target point by changing azimuth / elevation angles. (MMB (mouse middle button) in Blender) (20 pts)
C. Zooming: Rotate mouse wheel
- Using above mouse movements is essential for scoring your assignment, so if you use any other set of mouse movement or keyboard shortcuts for Orbit / Panning / Zooming, you won’t get any score for them.
- Toggle perspective projection / orthogonal perspective projection by pressing ‘v’ key (10 pts).
- When the program is executed, it starts in perspective projection mode.
- Draw a rectangular grid with lines (not polygons) on xz plane as a reference ground plane (similar to Blender). Choose number of rows and columns, size as you want. (5 pts






