HLSL Work
Pre-Lighting Pass
Pre-lighting stores the depth map, normal map, and lighting into render targets before combining all of them to create the final scene. The first pass stores depth, normals and the materials specular power into render targets. The second pass takes these two render targets and calculates diffuse lighting and specular highlights and places them into two more render targets. Finally, all render targets are combined to create the Phong lighting model as shown in the image opposite
Normal Mapping
This used shader programming to apply normal maps to models such as the brick normal map in the image opposite. The normal map is passed to the shader using a sampler where the tangents and binormals are calculated and the normals are transformed based on the normal map.
Particle Systems and Billboarding
The final demo shows a particle system that is performed using shaders to update positions as well as rendering the particles. Two systems were used - one for the smoke billowing out the teapot and one for rain around the scene. Also, the trees on the scene are drawn using the billboard technique to ensure that they always face the camera.