Summarize, in about one paragraph, your approach to the lights assignment. How did you structure your code? What's cool about it? Are there parts you weren't able to complete?
Remember to remove the placeholder class from your text; since (of course) your report information isn't a placeholder and shouldn't be styled as such!
Describe the scene you lit, the light count and placement approach, and include a screen recording showing it running in real-time:
Credit + cite your sources for textures and models, if you did not create them yourself.
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 the Final Project and beyond. This section also forms a road map to your code that we can use while grading.
Cover, at least:
how data moves from "LIGHT"
s stored in an s72 file to the in-memory representation used by your renderer;
did you decide to premultiply the power and tint attributes or leave them separate?
Cover, at least: the structures used to pass light lists to materials.
Include screenshots or recordings of your viewer showing proper behavior of lambertian and pbr materials under sphere, spot, and sun lights.
Include a graph showing the performance impact of adding additional lights to a scene. We would theoretically expect a linear increase in computing time; is this borne out in practice? How many lights can your viewer handle at a reasonable frame rate?
Cover, at least: how (and when) your viewer renders shadow maps; how your viewer works to avoid shadow map artifacts (e.g., rendering backfaces; using bias/offset; ...); how cube map textures are provided to materials; how many PCF samples your code takes and how it weights them.
Include output images showing that spot light shadows are working correctly for both lambertian and pbr materials.
Include output images showing that "shadow" light parameter does actually change the shadow map resolution.
Include a graph showing the performance impact of adding shadowing to lights to a scene. Attempt to separate the performance impact of shadow map rendering and shadow map sampling (e.g., by testing the same scenes with per-frame rendered shadow maps and pre-rendered shadow maps). Which is larger?
Cover, at least: your chosen method for sorting lights to meshes.
Build a scene in which your light sorting technique provides a performance improvement over rendering all meshes with all lights. Include a screen shot (and the scene itself).
Include data demonstrating the performance improvement in rendering this scene. E.g., a graph of the frame times for an animated fly-through of the scene with and without your sorting code enabled.
Cover, at least: your implementation of PCSS (sampling pattern, counts)
Include images showing the same shadows rendered with and without PCSS, showing the spreading behavior as the shadow stretches further from the light.
Cover, at least: your choice of shadow map cascade levels and layout; how your cascade is packed into a texture; how [if at all] your cascade avoids "boiling" as the camera moves
Include images showing a scene rendered with a shadow-casting distant directional light. Include images with a modified shader color-coding pixels by what cascade level they are sampling. Include images from a debug camera, showing how the shadow map cascade fits the camera frustum.
Cover, at least: how you chose to set up cameras for cube map rendering
Include images or video showing a scene rendered with a shadow-casting sphere light. Show that there are no artifacts at the edges or corners of the shadow map cube.
If you have received instructor permission to pursue another extra credit activity, include information about that activity here.
This is the end of the structured report. Feel free to add feedback about A3 to this section.