Late Night in the Sixties


Download in high or low resolution

1920x1080 480x270

Our Journey

At first our idea was to make a completly different scene as you can see here. We wanted to make a horror themed scene inspired by the alien movies and games. Since we had some troubles with that at first, we decided to look for a plan b, just in case the alien scene won't work out. For that, we tried to build a street and adding a car into it just to see how that would look like. After we found our car model of this oldschool AC Cobra we thought that a diner would fit very nicely into the background. And thats how the 60s theme was created. After a short time we fell in love with this idea and our plan b was now plan a. The outcome is the scene you can see here.

The Features


In order to speed up the whole process of rendering we decided to make the renderer work multithreaded. For that we divided the image into chunks that each thread can take over to render. If a thread is finished with his chunk he goes to the next one that needs to be rendered. It was implemented by Eric Windholz. The implementation can be seen in: rt/renderer.cpp

Fresnel Mix Material

We made our own MixMaterial for a diffuse and a reflective part, that does not use static weights but weights that are computed by the fresnel term each time the material was hit. That means that when hitting the material at a grazing angle the weight will be pretty low for the diffuse component and pretty high for the reflecttive component while hitting it with a low angle will make the diffuse part contribute more and the reflective part less. That way we were able to make a pretty realistic car paint material. It was implemented by Eric Windholz. The implementation can be seen in: rt/materials/fresnelcombine.cpp

With Fresnel Mix Material

Without Fresnel Mix Material

Depth of Field

To give the car a little more credit, and, as we think to give the scene a cooler look we decided to implement depth of field and add into our scene. The car is in focus while everything behind and in front of it is blurred out a little. It was implemented by Eric Windholz. To see the implementation go to rt/cameras/dofperspective.cpp

With Depth of Field

Without Depth of Field

Normal Mapping

Even before we had the final image of our scene in our heads we thought that normal maps would be a cool idea to give objects a little more depth. So we decided to implement normal mapping and added into our scene. We applied it onto the lanterns, the street and the pavement. It was implemented by Eric Windholz. The implementation can be seen in: rt/primmod/normalmap.cpp

With Normal Mapping

Without Normal Mapping

Gamma Correction

We noticed that our picture was way too dark.
Therefore we implemented Gamma Correction to get rid of the problem.
The implementation was made by Eric Windholz and can be seen here: rt/renderer.cpp

With Gamma Correction

Without Gamma Correction

Environment Mapping

What would the scene be without a proper night sky with stars? To get this nice sky into our scene we decided to implemented Spherical Environment Mapping. That was done by Eric Windholz and the implementation can be seen here: rt/solids/envsolid.cpp & rt/coordmapper/environmentmapper.cpp

With Environment Map

Without Environment Map

Our Assets

Buildings and Trashcan:
Trashcan Texture:
Street Texture:
Pavement Texture:
Pavestone Texture:
Lantern Texture:
Environment Map: