In this assignment, you will tackle photorealistic rendering of the scene you created for Assignment #2. You are required to write OpenGL and shader code to render the scene, and then compare the result with an actual photograph of the reference environment.
[5 point] Write your own vertex and fragment shaders to reproduce the reference environment on the screen. The phong shading example serves as the baseline of your implementation.
[5 point] Your shaders are expected to simulate the BRDFs of the reference environment. Additionally, if your scene contains textures, applying texture mapping is recommended.
Select the parameters of your parametric BRDF models to best match the scene.
Alternatively, if you are feeling more ambitious, you can use measured BRDF data available online. Search with keywords such as "BRDF database," "BRDF repository," or "shader BRDF examples" to find publicly available BRDF datasets.
[5 point] The standard Cornell box features an area light source located at the center of the ceiling. You can approximate this area light using an array of point lights.
[Extra credit] You may also create an additional rendered scene that does not necessarily match the reference environment. This extra scene can include objects with complex material properties, such as transparency, translucency, high reflectivity, or bumpy textures. Transparent and translucent objects require special attention to ensure they are rendered and composited in the correct order. The use of texture, bump, or displacement mapping techniques is encouraged to enhance realism in your scene.
[Extra credit] Experiment with light sources to create visually appealing scenes, such as holiday decorations with lights. One approach is to use many small lights to illuminate specific areas locally.
[Extra credit] The local illumination model does not produce shadows. Optionally, you are encouraged to experiment with shadow mapping or shadow volumes to add shadow effects to your scene. These shadow techniques will be covered in the upcoming lecture.
Important: The use of coding agents is permitted for this programming assignment. However, students must understand all methods used and all code written by the AI, and be able to answer questions about them.
Important: To receive extra credit, your report must clearly explain the specific methods and algorithms you used—for example, the shadowing and mapping algorithms, lighting setup, transparency or translucency techniques, BRDFs, and parametric models.
[5 points] Write a report describing
what you implemented and how it aligns with the specifications.
a detailed instruction on how to run and use your program
photographs capturing your Cornell box and screenshots of its rendering
any reference you referred and any 3rd party material/code/model you used
Submit a single ZIP file through ETL. The ZIP should include your code, data, report, and all necessary files to run your code.