Skip to content

Augusto-Concordia/tennis_love

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1693238566_tennis_love

tennis_love

Assignment #1 - COMP 371

My first real OpenGL project: the first in many to come :) I'll include some progress updates along the way, as well as instructions to how to build and run it.

Note: the +Z-axis is the up direction (blue line), the +Y-axis is the right-ish direction (green line) & the +X-axis is the left-ish direction (red line)

Features

  • Many keybinds to control the camera and the model
  • Animated and fun-shaded tennis racket with ball
  • Lit model using the simple Phong Lighting model

Getting Started

From a zipped folder (TAs ⚠️)

All depended upon libraries should already be included in the vendor folder.

  1. Generate project files with CMake
  2. Set the working directory to the root of the project
  3. Run the tennis_love project!

From the git repository

Similar to the above instructions, with the key difference being to clone the repository with --recurse-submodules to include the depended upon libraries.

  1. Generate project files with CMake
  2. Set the working directory to the root of the project
  3. Run the tennis_love project!

Keybinds

  • Home: Resets the camera's position & rotation
  • Tab: Resets the model's position & rotation
  • Space: Randomizes model's position on the grid

  • U: Scale model up
  • J: Scale model down

The following controls' direction were decided relative to the default camera's position, because it was assumed that the user wouldn't orbit the camera much.

  • W: Move model forward (along the X axis)
  • A: Move model left (along the Y axis)
  • S: Move model backward (along the X axis)
  • D: Move model right (along the Y axis)

  • q: Rotate model forward (around the X axis)
  • e: Rotate model backward (around the X axis)
  • w: Rotate model left (around the Y axis)
  • s: Rotate model right (around the Y axis)
  • a: Rotate model clockwise (around the Z axis)
  • d: Rotate model counter-clockwise (around the Z axis)

The following changes the world orientation (orbits the camera).

  • Up Arrow: Orbit up
  • Right Arrow: Orbit right
  • Down Arrow: Orbit down
  • Left Arrow: Orbit left

  • Keypad 7: Move camera upward (along the Z direction)
  • Keypad 9: Move camera downward
  • Keypad 8: Move camera forward (along where it's looking)
  • Keypad 4: Move camera left
  • Keypad 2: Move camera backward (along where it's looking)
  • Keypad 6: Move camera right

  • Right Click & Horizontal Mouse: Pan the camera (rotates it horizontally)
  • Middle Click & Vertical Mouse: TIlt the camera (rotates it vertically)
  • Left Click & Mouse: Moves the camera in and out of the scene (along where it's looking)

  • P: Renders the model as points
  • L: Renders the model as lines
  • T: Renders the model as filled triangles (i.e. polygons)

Progress

Full Camera Navigation w/ Phong Lighting (12/07/2023)

12f64fc5-74b2-4bfb-a35d-c649770e69cb.1.mp4

Complete Project w/ All Model & Camera Transformations

tennis_love_BVsUAUsnwi.mp4

About

COMP 371 - Assignment #1

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published