Write a program for the interactive modeling and rendering of pottery. Assume that the
pottery is a surface of revolution.
• The generating curve (i.e., the curve being revolved) is a subdivision curve or a
parametric curve. The user should be able to edit this curve by inserting, deleting,
and moving control points.
• You may use different viewports to edit the generating curve and display the
• The pottery should be rendered with Phong shading.
If you have implemented all basic features, you may choose one or more options from the
list below. Each feature (1,2,3, 4a,b,c) is worth 1% of the class mark (max)).
1) Implement both a parametric and subdivision method to define the generating
curves; make it possible for the user to select the method (interactively or by
specifying a command-line option.
2) Use a single viewport to both display the model and manipulate it.
3) Load and save the models (it is up to you to choose or devine the input/output
4) Improve the rendering using
a. texture mapping (the texture should be seamless),
b. procedural textures (e.g., Perlin noise),
c. ray tracing (using the ray-tracer you developed in Assignment 3).
1) All your source code must be written in C/C++. Your source code must compile on the
lab machines in MS 239 without any special modifications. Your source code must be
clear and well commented.
2) You are allowed to reuse source code that: (a) has been provided by your CPSC 453
TA for use in the course, (b) has been written by you for another assignment, or (c) you
have received permission to use from your TA prior to handing-in your assignment.
Other sources are not acceptable for reusing. You are not allowed to share your code.
Any instances of code reuse by you for this assignment must be explicitly mentioned
within the README.pdf file.