CIS 736 (Computer Graphics)
Due:
The programming component of this assignment is intended
to apply your understanding of cubic curves, splines, and bicubic surfaces, and
give you additional practice with viewing using the OpenGL programming library.
Refer to
the course intro handout for guidelines on working with other students.
Note: Remember to submit your
solutions in electronic form by uploading them to ksu-cis736-spring2004
and produce them only from your personal notes (not common work or
sources other than the textbook or properly cited references). No handwritten solutions, please.
Viewing, Curves, and Surfaces in OpenGL
1. (30 points)
Creating and rendering a bicubic surface
patch. Approximate the Bezier surface patch shown in Figure 10.20 of
Angel 3e (Section 10.6.2, p. 497-498)
using the MP1 scenefile format. Name
this file mp2-2.c.geo. Write an OpenGL program to render this using glMap2, glEvalCoord2, glMapGrid2, and glEvalMesh2
(Section 10.12.2, p. 521-522 Angel 3e).
Refer to Section 10.9 (p. 507-513), especially 10.9.4 and Fig. 10.36-38
(p. 512-513). to understand the
adaptation of the 2-D subdivision procedure.
Submit a source file mp2-2.c. You may use the same Makefile
for both this problem and Problem 1. Include your own scenefile, which
should be original.
2. (20 points) I’m
a
Mathematical Foundations
3.
(6 points) Animation.
Suppose that you use your
solution to MP2-1 to describe a path a path in time that an object will take as
part of an animation. How might you
notice the difference between G1 and C1 continuity in
this situation?
4. (4 points) Degenerate Case. What
happens in the cubic Bezier curve if the values of the control points P0
and P1 are the same?
Class Participation (Required)
Post an introduction by reply
to the instructor’s post in the class web board (http://groups.yahoo.com/group/ksu-cis736-spring2004)
and your Turn-to-A-Partner exercise from class.
Extra Credit (Optional)
(5
points) evalCurve in OpenGL.
Design a simple monogram of your
initials using splines and use evalCurve to draw them using OpenGL.