Transformers - Modelling and Rendering

Overview

In this assignment we will model two Transformers.

Transformers are robots that can transform into various kinds of vehicles, objects or creatures. They originally are a toy line by Hasbro Inc., and have been adapted to movies and animation.

As an example, you can see these:

http://www.youtube.com/watch?v=veZck1MtX5g

https://www.youtube.com/watch?v=vgBK5-qMOyg

The overall aim of this and the next assignment is to create a short film with the transformers of your own design. In this part of the assignment you will model the transformers.

Modelling Overview

The transformer movies have very complex transformations that you need not animate. It is much easier to animate the transformations of a toy. Instructions for such may be found in the the instructions for the toys like the one given here:
http://tfwiki.net/wiki/File:Bumblebee-instructions.jpg

Choose any of the transformers and create the basic robot with cuboids, or quads or any shape you want. At a minimum it must have a head, neck, torso, 2 upper arms, 2 lower arms, 2 thighs, 2 legs, 2 hands and 2 feet. Other geometry is optional - though they do make your model look more realistic. You are free to exercise your creative freedom here.

Design the heirarchical tree of transformation matrices that represent this model. Now choose the parameters that must vary to help you transform your model from a robot to a vehicle. Assign keys to vary each of these parameters interactively. Finally, assign a key that causes the entire trans-
formation from robot to vehicle/object/creature to happen, and pressing it again, causes the reverse transformation to happen.

Modelling To Do:

  1. Create a hierarchical model of a Transformer as explained above. You can choose the shape of each part to be made up of whatever primitives you want, but you have to model in OpenGL. No external tools like
    3DS Max, or Maya or Blender are allowed. You will be allowed to improve your model later as you learn more things in the course, but you cannot change its basic hierarchy.

  2. Design appropriate VBOs and VAOs. Try to encapsulate each rigid body part in a VBO.

  3. Your robot model should at least have the following degrees of freedom (dof):

    1. 1 dof at the knees and elbows
    2. 3 dof everywhere else (all the other joints specified above).
  4. Remember that finally you have to animate the model - so model the hierarchy carefully and choose your parameters and structural constraints wisely. You should not change the model hierarchy from this
    assignment to the next. For this reason, you have to putdown (draw the tree) what is your hierarchy in your report.

  5. In preparation for the animation, assign keys to vary the values of each of your model parameters, for example, you can use the uparrow key to make the model bend backward at the joint in the spine and the
    downarrowkey to make the model bend forward. Similarly add keys to change all joint parameters.

  6. There may also be extra dofs that activate only in the transformed mode, for example wheels might rotate on ly in vehicle mode. So think of the animation you may want to create in the next assignment with these models, and add the appropriate dofs.

Rendering To Do:

  1. Color the parts of the model appropriately to make it look better. Setup lighting and write shaders to perform appropriate shading on the model parts.
  2. Also figure out how to texture the robot model with appropriate textures for the parts.
  3. Render the robot against a black background. The user should now be able to use keys and make various parts of each model move as explained above.

Overall To Do:

  1. Upon compilation, your code should generate an executable named a2-model-tr.
  2. When this is run, it should show one of the transformers on the screen. Pressing ‘C/c’ should change this to display the second transformer.
  3. Whichever transformer is on display, is designated as active. Pressing ‘T/t’ should toggle the overall transformation for the active transformer.
  4. Additionally, pressing different keys should change the dofs of the active model. Map a separate key for each dof. You are free to choose your own keymappings for this.
  5. Write a report that includes explanation of your design choices, keymap bindings and a diagram of the hierarchical model for each transformer. Name this file report.pdf. Make sure you include the names of both members of your group in the report. Put the report in the doc folder in the repository tree.
  6. Take a screenshot of each transformer, as a robot and in its final transformed state. Name these files as partner1-rollnumber-partner2-rollnumber-tr01-robot.jpg, partner1-rollnumber-partner2-rollnumber-tr01-transform.jpg. Change to partner1-rollnumber-partner2-rollnumber-tr02 for the second robot respectively. If you are working alone, use partner1-rollnumber-nil.
  7. Upload these screenshots to doc folder of your repository.
  8. Modify the README.md file in the repository root folder stating the names and roll numbers of your partner for the assignment, and a declaration in your own words that the assignment is your own work and that you have not copied it from anywhere.
  9. Include your keymap in the README.md file.

Preparation

  1. The assignment is to be maintained and submitted via Github Classroom.
  2. Make sure you have a github.com account and have access to it before proceeding.
  3. Read these instructions about how to get started with assignments on github.
  4. Click on the assignment invitation link sent on the MS Teams channel for the course to begin.
  5. Choose the same group/team as the previous assignment on Github Classroom.

Do NOT do the following:

  1. Write untidy or unorganized code. This will be penalized.
  2. Submit a repository that does not conform to the expected structure or has extra files.

Plagiarism policy

Do NOT plagiarize code. We will check all submissions for copying.

Marking

  1. Creating Robot 1 with all required body parts - 150 marks
  2. Creating Robot 2 with all required body parts - 150 marks
  3. Working key mappings for all dofs in both robots - 100 marks
  4. Complete transformations for both robots - 100 marks
  5. Lighting and coloring - 120 marks
  6. Texturing - 100 marks
  7. Screenshots - 80 marks
  8. Report with hierachical tree - 100 marks
  9. Total: 900 marks
  10. Deductions: Inconsistently written code: 50 marks
  11. Deductions: Submitting an unclean archive: 50 marks.
  12. Deductions: Missing README and/or declaration: 100 marks
  13. Deductions: For every late day beyond the deadline, you will lose 25% marks. So up to 1 day late, you will be graded out of 75% marks, from 1 to 2 day late out of 50% marks, from 2 to 3 day late out of 25% marks, and beyond that no marks.

Important Note

Please do not put your solution code and report anywhere public. It should not be available online.

To Submit

  1. Regularly check-in the code into your teams' github repository.
  2. The last checkin before the deadline will be considered for marking.
  3. Modify the README.md file in the repository root folder stating the names and roll numbers of your partner for the assignment, and a declaration in your own words that the assignment is your own work and that you have not copied it from anywhere.
  4. Also cite any sources that you may have used to complete it.
Previous
Next