City Lighting

Katelyn Hicks' CPE 471 Final Project
Introduction to Computer Graphics, Winter 2014


My final project was the experimentation of lighting to represent a full day's cycle of lighting. My project allows the user to control the time of day and to walk through the city with full camera control.


Using the Phong Shading Model, I tried to represent the changing directional sunlight throughout the day and the illumination of the city through point light street lamps on the street corners during the night.
Hierarchical modeling was used to create different styles of skyscrapers.
Mapping multiple textures to the buildings, street, and ground.
Applying different materials to non-textured surfaces such as the street lamps and the interior walls of the buildings.

User Controls

Camera Transforms include using the WASD keys to move forwards, backwards, and to each side. The 'z' and 'x' keys are used to move the camera down or up in height, allowing the user to have a ground or aerial view.
Mouse movements can be used for two purposes -- either controlling the camera's pitch and yaw (leftmost 3/4 of the screen) or controling the time of day (rightmost 1/4th of the screen). Each of these options are changed based on the magnitude of movement from the mouse.
For the contrast between the lighting of mid-day to midnight, the user can use the '1' and '2' keys to quickly change the time of day.
A single mouse click will switch between a surface view of the city or seeing inside one face of the buildings.

Future Features

To continue with this city representation beyond this final project, I want to improve it by:
Allowing the user to select which face of the building will disappear when clicked.
Experiment with skyboxing to represent the night sky and the moon.
Animate the scene with objects such as taxis, people, ect.


OpenGL Tutorial: Using multiple textures
Transparency Tutorial