Difference between revisions of "CISC440 F2019 HW4"

From class_wiki
Jump to: navigation, search
(Required elements)
(Required elements)
Line 8: Line 8:
  
 
* In Blender, create and texture an object and export it as an .obj that is loadable by your OpenGL program
 
* In Blender, create and texture an object and export it as an .obj that is loadable by your OpenGL program
** The object may not be a default mesh in Blender such as a plane, monkey, cylinder, or sphere.  Rather, it should be an edited version such as the [https://www.youtube.com/watch?v=iEVAGnR2GRQ apple created in this tutorial]
+
** The object may not be a default mesh in Blender such as a plane, monkey, cylinder, or sphere.  Rather, it should be an edited version such as the [https://www.youtube.com/watch?v=iEVAGnR2GRQ apple created in this tutorial] or the [https://www.youtube.com/watch?v=rBffAMQh1Qc cube manipulations here]
 
** Apply at least one texture to the object either through [https://www.youtube.com/watch?v=6F5M0ZuL-eg wrapping] or [https://www.youtube.com/watch?v=JX-UwgKaPsA painting] and save the resulting .obj
 
** Apply at least one texture to the object either through [https://www.youtube.com/watch?v=6F5M0ZuL-eg wrapping] or [https://www.youtube.com/watch?v=JX-UwgKaPsA painting] and save the resulting .obj
 
* In your C++ OpenGL program, load the .obj and animate a camera path that shows it from different angles and distances, calling glm::lookat() to recompute the view matrix at every step.   
 
* In your C++ OpenGL program, load the .obj and animate a camera path that shows it from different angles and distances, calling glm::lookat() to recompute the view matrix at every step.   
Line 15: Line 15:
 
** The camera position (i.e., the view matrix) should be updated with each pass through the animation loop and the scene redrawn from the new location.  Your up vector may remain constant, and your center point (where the camera is looking) may either be fixed to the centroid of the object that you loaded, or it can be updated to "look ahead" of the camera for an architectural walk-through or roller coaster scenario.
 
** The camera position (i.e., the view matrix) should be updated with each pass through the animation loop and the scene redrawn from the new location.  Your up vector may remain constant, and your center point (where the camera is looking) may either be fixed to the centroid of the object that you loaded, or it can be updated to "look ahead" of the camera for an architectural walk-through or roller coaster scenario.
  
Submit your C++ code, the .obj you created, and text description of how you created it.
+
Submit your C++ code, the textured .obj you created, and a short text description of how you created it.
  
 
==Graduate students only==
 
==Graduate students only==

Revision as of 22:21, 31 October 2019

Due Monday, November 11

Description

In this assignment you will create and texture an object (loosely defined) in Blender, then display it in an OpenGL program which animates camera motion along a Catmull-Rom spline.

Required elements

  • In Blender, create and texture an object and export it as an .obj that is loadable by your OpenGL program
  • In your C++ OpenGL program, load the .obj and animate a camera path that shows it from different angles and distances, calling glm::lookat() to recompute the view matrix at every step.
    • Your camera path should be created from a Catmull-Rom cubic spline. All control points should be chosen by you and hard-coded your program as an array of 3-D positions.
    • The camera path should be displayed initially as a continuous curve (i.e., connected line segments). So it should be computed outside of your animation loop
    • The camera position (i.e., the view matrix) should be updated with each pass through the animation loop and the scene redrawn from the new location. Your up vector may remain constant, and your center point (where the camera is looking) may either be fixed to the centroid of the object that you loaded, or it can be updated to "look ahead" of the camera for an architectural walk-through or roller coaster scenario.

Submit your C++ code, the textured .obj you created, and a short text description of how you created it.

Graduate students only