Written Questions Due: Friday, Nov 11th by 12:30/2:00 PM (in class)

Program Due:

Milestone 1: Friday, Nov 4th by 11:59 PM

Milestone 2: Tuesday, Nov 15th by 11:59 PM Late assignments will be penalized 20 points per day.

Getting Started

Download CS370_Assign04.zip, saving it into the CS370-Fall2022 directory.

Double-click on CS370_Assign04.zip and extract the contents of the archive into a subdirectory called CS370_Assign04

Open CLion, select CS370-Fall2022 from the main screen (you may need to close any open projects), and open the CMakeLists.txt file in this directory (not the one in the CS370_Assign04 subdirectory). Uncomment the line

	add_subdirectory("CS370_Assign04" "CS370_Assign04/bin")

Finally, select Reload changes which should build the project and add WalkingMan to the dropdown menu at the top of the IDE window.

Written Questions

  1. Using the example robot from lab 14 suppose we know the position where one of the upper arms is starting and have a specific final location we want the arm to have. Give a method to create the path the robot should follow to get from the starting point to the end point.

  2. Using the example scene graph diagram from lab 14, sketch the scene graph for the programming portion of the assignment. Note: You only need to show the relationships between the nodes, i.e. it is not necessary to include transformations.

  3. Given the following texture map

    Texture Map

    with wrapping modes

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    

    sketch the surrounding parts of the texture plane.

  4. Using the texture plane from question 3, sketch the textured figure given below using the provided texture coordinates

Texture Object

Hints

  1. This problem is known as reverse kinematics and is a key area of robotics research. Representing the individual transformations symbolically as T(dx, dy, dz), R(ang), and S(sx, sy, sz), first determine the net transformation matrix for the upper arm in terms of the base angle θ, lower arm angle φ, and upper arm angle ψ along with any translations for each part. Then let the initial base and joint angles be θi, φi, ψi and final base and joint angles be θf, φf, ψf. These angles would be found by solving the transformation matrix equations for the angles (which you may assume can be done to compute all these angles). Using these sets of angles describing the location of the two points, suggest an interpolation scheme to smoothly transition from one to the other.
  2. Consider which nodes are relative to other nodes (children) and which ones are independent (siblings).
  3. Note that the texture plane actually extends infinitely in both directions.
  4. Mark the texture coordinates on the texture plane, then “cut” this section out and “stretch” it to fit on the object.

Programming assignment

Write a program that draws a 3D scene of a walking player with articulated arms and legs along with a bouncing basketball into a translucent box sitting on a court. A sample executable is included in the demo directory as either WalkingManSolWin.exe or WalkingManSolMac. Keyboard controls are provided that allow an orthographic camera to be rotated using WASD. The scene should include:

Hints

Grading Criteria

The program MUST compile to receive any credit (so develop incrementally).

Milestone 1 - 32 points

Milestone 2 - 68 points

Be creative! For example, enhance the geometry of the scene and/or use additional animations. Remember that the program should still have reasonable performance on the lab machines.

Compiling and running the program

You should be able to build and run the program by clicking the small green arrow towards the right of the top toolbar.

Walking Man Window

To quit the program simply close the window.

Submitting to Marmoset

When you are done, submit the assignment to the Marmoset server using the Terminal window in CLion (click Terminal at the bottom left of the IDE). Navigate to the directory using

$ cd CS370_Assign04
CS370-Fall2022/CS370_Assign04
$ make submit_ms1

or

$ cd CS370_Assign04
CS370-Fall2022/CS370_Assign04
$ make submit_ms2

Enter your Marmoset username and password, if successful you should see

######################################################################
              >>>>>>>> Successful submission! <<<<<<<<<

Make sure that you log into the marmoset server to manually
check that the files you submitted are correct.

Details:

         Semester:   Fall 2022
         Course:     CS 370
         Assignment: assign04_ms1

######################################################################

You are responsible for making sure that your submission contains the correct file(s).