Courses‎ > ‎Computer Graphics‎ > ‎Dyrland-Weaver‎ > ‎Work‎ > ‎

Work 13: The End

posted May 30, 2018, 11:50 AM by JonAlf Dyrland-Weaver   [ updated Jun 8, 2018, 8:40 AM ]
Project Due: 12pm (noon) Thursday, 6/14.

GitHub link:

For the final project, you are to add any features you'd like to your current graphics engine. Below are some good places to start (you may work on other features if you prefer, just talk to me about it first).
  • Lighting
    • Implement lighting commands in MDL.
    • Relevant MDL commands: ambient, light, constants
    • Allow an MDL programmer to set the ambient light, create lighting constants and set potentially multiple point light sources.
  • Shading
    • Implement Gouraud and/or Phong shading.
    • Relevant MDL command: shading
    • Allow an MDL programmer to select from the shading methods you have implemented.
    • As discussed in class, a hash table structure can be very helpful for dealing with vertex normals. If you are woking in c, check out uthash.
  • Importing polygon mesh files
    • Relevant MDL command: mesh
    • Allow an MDL programmer to specify a polygon mesh defined in an external file.
    • The easiest format to work with is .obj.
      • Read up on it here.
      • Find example files here.
      • Make sure you deal with .obj files that list quadrilateral faces instead of triangles.
  • Add new primitive shapes to the graphics engine.
    • You will have to add MDL commands for each new shape, requiring you to modify the lexer and parser language specifications.
  • Add modifiers to the vary command.
    • Create options to vary knobs in ways other than linearly.
    • This will require you to modify the lexer and parser language specifications.
You may work with one other person from your graphics class if desired.

Your file must describe what features you have implemented  and any relevant MDL instructions.
  • Start your file with your name(s) and class period.
  • The have a succinct list of the features you have implemented, and any relevant MDL commands.
  • Provide more detailed descriptions below that list if needed.