You may choose any five of the following problems for 40 points apiece; maximum total score is 200 or 20% of the course grade. Write clear and comprehensive answers, using a word processor if possible.
1. Direct 3D. (Part a:20 pts.) The TICK() function is described by Trujillo (page 116) as a way of controlling the granularity of a D3D-based animation. Assume that an animation is described as containing a succession of rotations by 45 degrees. If TICK(0.5) is called as part of the OnIdle invocations, what would be the actual effect? Would the object rotate in steps of 22.5 degrees? Would it rotate faster or slower than if the TICK() function were not called?
(Part b: 20 pts.) Assume you wanted to provide a bird model that flapped its wings while it flew, in a D3D application. Describe two ways to do this, and identify any advantages of one method versus the other.
------------
2. 3D MaxTricks. (Part a: 20 pts.) Assume you wanted to develop a spline based animation such as the one we did for the roller coaster, and then to include it as part of a D3D based application. Describe the data structures, algorithms and D3D features you would need to use to accomplish this goal.
(Part b: 20 pts.) On page 261 of the Peterson book, 3D Max's capability to treat ray tracing as a "per object" material property is described. What does this mean, and how might you deal with the problem of using an object which was originally modeled with this material effect, in a D3D-based game?
------------
3. Texture Mapping. (Part a: 20 pts.) What, specifically, does D3D mean by a "spherical" texture map? How can such a technique be applied to, for instance, a cubical object?
(Part b: 20 pts.) Are there means in D3D for dealing with any of the following problems? If so, how are they used? If not, what would you do to minimize their impact in the construction of a computer game?
- Multiple LOD in texture
- Applying an illumination model to a textured surface
- Aliasing of textures during perspective transformation
- Alpha blending of textures
------------
4. Shadows and Illumination. (Part a: 20 pts.) You're designing a D3D-based computer game. Imagine a scene in which a flat terrain is occupied by a strange alien castle, the principle feature of which is a geodetic dome ("Buckminster Fuller dome.") - a multifaceted spherical structure. We want to show an encounter in which a huge alien space-ship (think Independence Day) passes over this scene. Its shadow will cross over the castle. How would you manage the ship's shadow passing over the geodetic dome? Provide a rationale for your choice.
(Part b: 20 pts.) Several students, in developing Lab 1 in which D3D was used to produce a "cube carousel" with a spinning directonal light, subdivided the base plane (and sometimes other components of the scene) into rectangular arrays of polygons, even though the surface could be geometrically represented by a single polygon. Why did they do this? What alternative graphical techiques (within or beyond D3D's capabilities; be explicit) could have been used to achieve similar results?
------------
5. Simulation. (Part a: 20 pts.) In the handout by G. A. Korn titled "Interactive Dynamic System Simulation", the division of the simulation software into the derivative procedure, which represents the model, and the integration procedure. He discusses several simulation languages such as ACSL and DARE, all of which include automatic routines for sorting the equations within the derivative procedure. Explain in your own words why the equations need to be sorted, and how (on what keys, so to speak) they are sorted.
(Part b: 20 pts.) You were asked to mathematically model a lunar lander with fuel depletion, in a form suitable for use in a simulation as described in (a) above. Provide that model together with a brief textual description of its features.
-----------
6. Java3D. Describe in as much detail as you can, the differences and advantages (if any) of Java 3D over (a) a basic graphics resource such as Open GL, and (b) Direct3D.
-----------
7. Narrative. (Part a: 20 pts.) Apply Aristotle's poetics to Toy Story (I or II, your choice.) What growth or change happens within the lives of the principal characters?
(Part b: 10 pts.) Itemize some of the basic problems involved in telling stories in interactive media. How are these problems attacked in the design of the Zelda game series (or another game of your choice?)
-----------
8. Mesh Modeling. When we discussed the 3D Max project to construct an ice cream cone by twisting a cube, we considered three layers of modeling: procedural (stack-oriented), spline/control point, and final render-ready point mesh.
(Part a: 20 pts.) Describe the processes of "shear rotation" and "shear scaling" which we discussed in class. What parameters would one need to provide, to explicitly control such a transformation on vertices?
(Part b: 20 pts.) In class, I posed the following question: what prevents the cube, when its upper square is twisted and rotated, from simply deforming into a pair of different-sized squares rotated to different angles with corresponding vertices joined with straight lines (which might cross in the middle.) Chad provided the correct answer, and so this should be an easy 20 points for him.
------------
9. Particle Systems. They're really just little objects flying about, aren't they?
(Part a: 20 pts.) Assume you wanted to create a particle system effect such as a storm of dust squirting out of the (accidentally reversed) hose of a vacuum cleaner, using D3D. How would you do it?
(Part b: 20 pts.) Now assume that you had a 3D Max animation which included a vacuum cleaner disaster feature as described above. Would any of its elements be useful to the solving of Part a? If you would need to write (or acquire) any software, describe it.
-------------
10. Constraint Systems. (Part a: 20 pts.) Analyze 3D Max's inverse kinematics system in the light of the lecture on ThingLab's MidPointLine class. Explain as much of Max's functionality as possible, in terms of concepts that were introduced in the lecture on constraint systems.
(Part b: 20 pts.) Consider the problem of animating Luxo,
Jr. - the famous jumping lamp in the 1980's Pixar movie (which is showing
as a trailer for Toy Story II.) Describe the processes that
were used, in terms of the lecture on 11/24 and Jennifer Burg's paper on
dynamic constraints.