2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1 https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 1/5 COMP 3490 Assignment 3 Material covered: animation techniques 3D transformation and viewing hierarchical modeling Notes: For all programs, use P3D: either Processing or Processing with Java. Include a readme.txt file that describes the platform you used to test your programs (Processing version, operating system, graphics hardware), and notes to the marker for each question (e.g. things that don't work as expected or things that are better than required). Electronically submit a copy of your source code files in a single .zip file. Use the following folder structure within your zip file: readme.txt Q1/ Q1.pde NumberPanel.png Q2/ Q2.pde Your assignment submission must run correctly with files in that structure, and as downloaded. The marker will not reorganize or rename files to make it run. If your program does not run as submitted, you will lose substantial marks. If you want to get credit for partially-complete but broken features, it may be best to comment out the code and mention it in your readme.txt. Name your zip file in the form LastnameFirstnameA3.zip, replacing LastnameFirstname with your last and first names. Unless otherwise noted in the question, your initial window size should be 640x640, and you do not need to handle window resizing. You must fill in an honesty declaration for each assignment before you can access the assignment dropbox. You must accept and follow all of the academic integrity requirements for the course, including the Expectations for Individual Work in Computer Science Question 1: Rocketship This question is worth 50% of the assignment mark. Write a P3D/OpenGL program that implements an interactive, goal-directed animation where the endpoint of each motion is specified by user input. Your program will draw an object (like a "rocketship") with some position and orientation. When the user clicks the mouse at some location on the screen, the object will rotate and move to that location in a Listen 2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1 https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 2/5 physically plausible way. The maximum speed will be set by clicking in a control panel. The moving object will act as an emitter for a particle system. Implementation requirements: The moving object doesn't have to be a "rocketship", but it must be interesting! Use several geometric primitives and colours. Not just a triangle, like the sample image. The moving object you choose must have an obvious visible orientation, to make it clear what direction it is pointed in. Clicking in the window anywhere except the number panel sets the target location for moving the object. The object must rotate towards the target location and move there. The rotation and translation do not have to be simultaneous. The translation must be physically plausible. It must include speeding up and slowing down as it moves from one place to another. You can implement a simple physical simulation (minimum: velocity and acceleration) or lerp with ease-in-out. 2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1 https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 3/5 The rotation speed may be linear. Optionally, rotation can also speed up/slow down. You may handle clicking on a new target during motion by either changing the current motion, by slowing down and stopping and then rotating/moving to the new location, by ignoring the click, or by completing the current motion and then moving to the new location. Clicking on the control panel sets the instance variable value to the corresponding number (0-9). Use this value to choose the maximum velocity of the object. At 0, the object rotates but does not translate; at 9, it should move quite fast. This value does not have to affect rotation speed. The acceleration/deceleration or ease-in-out should be very obvious at higher velocities. As the object moves, it will emit particles proportional to its current speed: Some parameters of the particle system must be clearly and visibly proportional to the direction of linear motion. For example, the particles may have a direction of motion tending to the negative of the object's motion. Particles are not required to be associated with rotational motion. Some parameters of the particle system must be clearly and visibly proportional to the speed of linear motion. That is, the faster the object moves, the more and/or faster and/or larger the particles. Particle shapes are your choice. Other than the above, the particle system must incorporate a variety of particle sizes, colours, motions, and (limited) lifespans, and any other parameters you like. These parameters must be constructed with a combination of both randomness and constraints, and must be updated throughout their lifespan. Whatever choices you make, the on-screen motion should always be smooth and plausible. Do not skip motions, "jump", "teleport", or allow any other discontinuities in the motion. You can use A3Q1.pde from the course web site as a starting point. Options like background colours and coordinate systems are up to you. You can also change the appearance (but not the behaviour or purpose) of the number panel image. Question 2: Walking robot This question is worth 50% of the assignment mark. Write a P3D/OpenGL program that draws a 3D animated hierarchically-animated robot that walks along a surface. Your program will also allow an interactive choice between several views and projections. 2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1 https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 4/5 Implementation requirements: The robot consists of a body (torso), two arms, two legs, and a head. The arms and legs each have two parts ("upper" or "lower"), with a joint in the middle ("elbow" or "knee") You can draw these parts with any reasonable 3D solid primitives or combinations of primitives. Their distinction and orientation must be visually obvious: use colours, outlines, and/or complex/combined primitives to indicate. The robot's "walk" will be animated hierarchically: The head will move relative to the torso The upper arm/leg will rotate relative to the torso The lower arm/leg will rotate relative to the upper arm/leg The parts of the robot should connect and move neatly and realistically, though you do not have to prevent physical impossibilities (such as self-intersection at the joints). The robot will walk on top of a surface. The surface must have some kind of detail to ensure it is clearly defined, such as a grid. It cannot be simply a solid colour. The surface can extend beyond the edges of the display. The robot will walk in a straight line, from one edge of the world to the other. When the robot walks to the edges, it should still be (mostly) visible. 2021/11/16 下午9:39 Assignment 3 - COMP-3490-A01 - Computer Graphics 1 https://universityofmanitoba.desire2learn.com/d2l/le/content/438443/viewContent/2673488/View?ou=438443 5/5 You must implement three different static views (fixed camera positions) of the robot and the environment, and two different projections: one orthographic and one perspective. Pressing the space bar will cycle through the three views and switch between the orthographic perspective projections. Given views v0,v1,v2 and projections p0,p1, hitting space cycles through v0/p0, v1/p0, v2/p0, v0/p1, v1/p1, v2/p1, and back to the start. The initial view should show all of the robot. The robot may move off the edges of the screen, though it should not be visibly clipped within the screen under any circumstances (e.g. no near/far clipping). Try to keep the robot as visible as possible. Satisfying all of these requirements will make you eligible to earn an "A". To be able to earn an "A+", you need to implement one more feature from the following list: Use a different geometry for at least one of the parts of the robot's body. You can define this yourself or import a 3D model as an OBJ file. There are many sources of free OBJ files, which you can use and cite. Or: Add geometry for the joints (elbows and knees) to connect them more realistically. Or: Allow the robot to follow a non-straight line path by enabling it to "turn". The turn must include some unique animation different than the normal "walk". The robot can stop while it is turning. Right-angle turns are fine. Make the robot walk around your surface continuously. Use your README file to indicate your choices, your extra feature (if any), and any changes or additions you have made.
欢迎咨询51作业君