Assignment 03 - Shading to Match the Real.
13 Feb 2017As discussed in class today, here is example code to use that includes two image texture maps. You may study the main.cpp and also the fs.glsl to see how the texture mapping from images works, but you will only need the texture coordinates (bundled as a VBO in the VAO in main.cpp and passed as an input vec2 to the fragment shader) to complete the main assignment.
Details of Assignment 03:
- Complete a model with texture layout of your particular piece of labradorite.
- Triangulate and export your model as an .obj file from Maya to read with the OpenGL code given.
- Develop a procedural fragment shader that uses some of the techniques discussed (or others) to attempt to match your piece of labradorite.
- Your goal is to match your reference as best possible, but experimentation, technique, and overall visual style will be valued more than a perfect match in this assignment.
- Consider a layered approach informed by the texture coordinates, normal vector, view vector, and light vector as well as other possibilities.
- Make sure that your fragment shader maintains Blinn-Phong lighting, shifting the light location to match the video turntable of your object.
- Include a brief description of your approach and final technique as well as a screenshot of any versions along the way and video(s) of your final version or others. If possible, match a looping turntable in your video. If you managed something really close to your rock, generate a video showing the two together.
- Package your brief written description (pdf) with screenshots, video, and fragment shader (or other materials as needed) in one lastname.tgz file to upload to Canvas by Monday, February 20. Come to class prepared to present your video (live demo if time) for critique.
Optional Extensions for Extra Credit
- Implement your own noise, fBm, Voronoi, or other algorithm in your own code and document what you did.
- Implement a more advanced version of coherent noise (such as simplex) or other that you use in your shader.
- Complete painted-image texture maps in a layered approach to match your piece of labradorite.
