A2: Materials by Jim McCann (jmccann)

Summarize, in about one paragraph, your approach to the materials assignment. How did you structure your code? What's cool about it? Are there parts you weren't able to complete?

My Model A2-create

Describe the model and texture you created and include a screen recording showing it running in real-time:

Describe your creation process for the model and texture.

My Code

For each of the following sections, describe the overall structure of your code, and reference the specific files/functions/data structures that you used. For any parts that are incomplete, discuss what you were able to do and what you tried but couldn't get working.

The purpose of this section is to get you to think critically about your code by explaining it to course staff; these thoughts may help you improve the code as you work on it in A3 and beyond. This section also forms a road map to your code that we can use while grading.

Loading lighting environments A2-env

Cover, at least: your changes for the new "ENVIRONMENT" type; your choice of coordinate systems for the environment map; your handling of the high dynamic range.

Include a screenshot (or, ideally, recording) of your viewer drawing a scene with both the `environment` and `mirror` materials.

Tone mapping A2-tone

Cover, at least: your choice of tone mapping operator, your viewer's output color space and format.

Include a screenshot of your viewer drawing an example scene before and after implementing tone mapping.

Include a graph of your tone mapping operator's curve. Consider including histograms of the output values to help illustrate how the curve is working.

Lambertian material A2-diffuse

Cover, at least: your implementation of cube map handling; your implementation of the cube utility.

Include the output image your viewer produces from drawing the unit cube with the "lambertian" materials.

Include an example of a lighting environment and its precomputed lambertian lookup table. (You can use https://github.com/15-472/cube-viewer/ to show cube maps in our format; you might even consider embedding it in your report to show cubes live.)

Normal maps A2-normal

Cover, at least: your choice of coordinate systems for the normal map.

Include a screen recording or a sequence of screenshots showing normal maps working. (E.g., demonstrate how moving the light changes the shading; show the same object with and without its normal map to show that detail is, indeed, being added.)

Include screen shots demonstrating that normal mapping is working with all material types.

PBR material A2-pbr

Cover, at least: your implementation of a specular look-up mipmap; your implementation of the cube utility.

Include the stack of look-up cubemaps your utility produces when run on an example lighting environment.

Show screenshots or screen recordings of a variety of interesting material appearances demonstrating the parameter range of the "pbr" material.

Displacement map A2x-displacement

Cover, at least: your choice of coordinate systems for the displacement map.

Include a screen recording or sequence of screenshots demonstrating the parallax effect as the camera moves over a displace-mapped object.

Include screen shots demonstrating that the displacement mapping is working properly with all material variations.

Performance Tests

This section demonstrates that you have tested your code, including finding its limits.

Before getting into the tests, describe here the relevant information about your testing system(s). (CPU, GPU, Memory, driver versions, OS version, ... -- anything you think might be relevant!)

Material Performance

Compare the relative performance of the various material types in this assignment. Illustrate the costs of adding normal (/displacement) maps.

Texture vs Vertex Detail

Compare the relative performance of a high-resolution mesh with a lambertian material to a low resolution mesh with a normal map and a lambertain material. (When) is texture detail really cheaper than vertex detail?

Feedback

This is the end of the structured report. Feel free to add feedback about A2 to this section.