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

Work 12: The End

posted May 28, 2019, 11:41 AM by JonAlf Dyrland-Weaver   [ updated Jun 13, 2019, 6:44 AM ]
Project Due: Friday, 6/14, 11:59PM

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.
Step 0
  • Create a GitHub repository for your project.
  • In the file put
    • Your Name(s) at the top
    • Your Team Name
    • List of features you plan to implement.
  • This is due 8am Monday morning (6/3).

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

  • Existing, MDL Commands/Features:
    • light
      • Add a light to the symbol table
      • When calculating diffuse and specular: loop through all the lights.
    • mesh
      • Use an external .obj file for polygons
      • Read up on the obj format here.
      • Find example files here.
      • Make sure you deal with .obj files that list quadrilateral faces instead of triangles.
    • set
      • Assign a value to a knob
    • saveknobs
      • Save current knob values to a list
    • tween
      • Produce an animation by going between two knob lists
    • shading
      • Use different shading techniques / calculating I more or less frequently.
      • 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.
    • save_coordinate_system
      • Save a copy of the top of the stack to the symbol table
      • use this coordinate system when drawing shapes (extra argument required)
  • Additions to MDL that require changes to the language:
    • New primitive shapes
    • Change the behavior of vary
      • add a parameter to change how it calculates the change over time
      • Linear , Exponential, Logarithmic, Arbitrary equation, etc. 
    • Anti-aliasing / Super-sampling 
      • Reduce pixelated edges by calculating a higher resolution version of the image then reducing it to the intended size
    • Texture mapping
    • Using vary to move lights.