• Surface of Revolution

    Implement the surface of revolution in ComputeMeshData() in SurfaceOfRevolution.cs. You will compute the position, normal, and texture coordinate for each vertex. The mesh must have correct connectivity (correct vertex orientation and no unnecessary vertices), and you must comply with the number of radial subdivisions.

  • Hierarchical Modeling

    You will create a humanoid-like model using simple meshes (like cube, sphere, cylinder, etc.) and at least one surface revolution component you made in the previous part. You will need to create an appropriate hierarchy for your component that would allow for reasonable manipulation and transformation of the parts. Lastly, implement at least three basic animations.

  • One Bell and One Whistle

    You should add one bell and whistle to your project. You may implement additional ones for extra credit.