In this project we will add support for soft shadows and glossy reflections to our ray tracers.
Requirements
XML Scene Format
In the XML scene format we specify glossy reflections/refractions by adding a "glossiness" value for the "reflection" or "refraction" tag of the Blinn material. If the glossiness is not specified, it should be regarded as zero, which means no glossy reflections/refractions. Notice that the "glossiness" value for the "reflection" tag is separate from the "glossiness" of the Blinn shading.
<material type="blinn" name="ground"> <diffuse r="0.3" g="0.3" b="0.3"/> <specular value="0.1"/> <glossiness value="50"/> <reflection value="1.0" glossiness="0.5"/> </material>
We specify area shadows by adding a "size" value to point lights. This size value effectively converts the point light to a spherical area light.
<light type="point" name="pointLight"> <intensity value="1.0"/> <position x="-50" y="-100" z="50"/> <size value="5.0"/> </light>
You can use this test scene to verify that your implementation is correct.
Resources
Here is an example implementation of the XML parser using TinyXML.
Optional Feature Suggestions
Student Project Pages