CS408 Assignment 6
Due: April 9, 2015

CS 808 Students: For Assignment 6, you will do a small project of your own devising related to your research paper.

Do part A on piling sand or part B on using Maya to create a simple animation.

PART A

Create a program to display a 3D view of a landscape with sand piling on it. Use a 2D height field to represent the roughly flat terrain of landscape. The height field gives the height in meters at the corners of every rectangle of the surface. The given heights can be regarded as poles and the ground surface as a stiff fabric laid on top of the poles.

At one point, called the drop point, which is initially in the center of the landscape, sand is falling from above. Your task is to animate the appearance of sand piling up on the surface. As the sand falls at the drop point, the elevation of the surface in the immediate vicinity should be slowly increased. To do so, gradually increase the height of nearby poles. As well, the height of slightly farther poles should also be adjusted as the pile grows higher. If all the sand falls at one location, it should form a cone (use 30 degrees as a default slope).

Landscape: draw a surface by using a grid of textured shapes, such as triangles or quadrilaterals. For example, for quadrilaterals, the X and Z values of the four corners of each quadrilateral are dictated by the grid pattern and the Y value is given by the height for the pole at that (x, z) location, as recorded in the height map.

Display of Surface: The surface should be displayed using a sand texture (sand.bmp is provided on the website).

Falling Sand: Use a simple 3D particle system to simulate the falling sand particles. Each particle should have X, Y, and Z values, stored as floating point values. The origin of the particle system should be well above the landscape.

As the particle system is being updated, every particle should be examined to see if it has reached the surface. To do so, first find the height h of the surface at its current x, z location. This is done by first finding the four poles that surround the (x, z) location of the particle. These poles may be given as (i, j), (i, j + 1), (i + 1, j), and (i + 1, j + 1) for some i and j related to the values of x and z (truncated values). Since we now know the identity of the four poles, we can compute a weighted average of their heights, where the weights are based on the closeness of each pole to the drop point.

If the current height (Y value) of a particle is less than the height h of the surface at the same point, then the particle should be removed from the particle system and the height of the surrounding poles should be increased. Suppose the height is to be increased by 1 meter for each particle. Then the simplest system would try to add a total of 1 meter to the four immediately surrounding poles (divided according to their x, z fractions), as discussed in the Notes. Then these four poles would distribute some of their added heights to nearby poles, and so forth.

Otherwise, i.e. if the particle has not reached the surface, the Y value of the particle should be reduced (to simulate falling due to gravity).

Moving the origin of the particle system: allow the user to adjust the location of the origin of the particle system, perhaps using WASD or similar keys.

Display of Particles: The particles, while falling, can be displayed as a partially transparent fluffy brown balls. You can use a glut solid sphere with colour (0.6, 0.4, 0.2) and transparency 0.5 or other values of your choice.

PART B

1. Create an animation using Maya (or you can substitute Blender or 3D Studio Max or other animation package throughout the assignment) that has the following features:

·  At least 7 objects based on a total of at least 4 different shapes (e.g., sphere is one shape). Up to 6 of these objects can be simple shapes such as balls or boxes.

·  One object must be a steam train locomotive or caboose designed by you.

·  At least 4 objects should change in some fashion, controlled by at least 5 key frames each. Make the changes obvious.

·  All of the following changes must be demonstrated by at least one object:

o  movement (translation)

o  rotation

o  change in size

o  change in color

·  At least 3 objects should have at least one of the advanced features below such that at least 3 advanced features in total are demonstrated:

o  curved path,

o  particle emitter,

o  melting (one way: create a plane and some object on that plane, select the object and Animation (mode in upper left on screen) / Create Deformer to create a Lattice, Dynamics / Soft-Rigid Body / Create Softbody, keep lattice selected and shift select the plane, Dynamics / Particles / Make Collide, select on the lattice, Dynamics / Field / Gravity, and then animate),

o  waves (keyword: ocean) or other fluid effect,

o  edited 3D mesh (edit-mesh). (one way: select some polygon faces and then use Polygon (mode in upper left on screen) / Edit Mesh / Extrude to change them.) Use the online help to find out about edit mesh extrude.

o  For example, a tractor with a particle emitter, a truck with an edited 3D mesh, and a glass of water with waves gives a total of three objects using three advanced features.

·  Must tell a “story” of some sort (some type of cause-effect or other interrelation between changes that occur). For example, in a rocket story, two rockets might be launched and then collide or meet and exchange an artifact.

·  At least 1000 frames at 10 frames per second or more, rendered at 320x240 or more.

·  Extra feature: Incorporates some animated behaviour(s) created using at least one feature of Maya that is not required above. Hint: There are many tutorials available for Maya on the web.

This animation will be evaluated on a one-on-one basis by the teaching assistant or the instructor, according to a sign up sheet. It is required that the animation run in the lab, but you can bring your own computer to the demo if that is helpful. Identify your extra feature clearly in your documentation (see question 3).

Tutorials:

Getting Started

http://usa.autodesk.com/adsk/servlet/index?id=9502844&siteID=123112&linkID=9242256

2. Write up a description of the most complex behaviour in your animation and explain how you did it. For example, if you used simulated wind in your animation, describe how you added simulated wind using the Maya interface (what sequence of commands did you use and what parameter values did you choose). You should provide a blow-by-blow complete list of commands, but if you repeated a subsequence of commands several times, you can simply mention that, e.g., “repeated steps 4-8 choosing rectangle instead of sphere.” If it is more than 15 steps, just list the first 15 steps and summarize the rest.

3. Describe your extra feature: what is it and briefly how did you create it?

Please remember: No food and drinks in the lab. If you are hungry or thirsty it is time to give your eyes and wrist a rest from the computer!

2