Street at night
Felix Czerner
-
Going on a walk late at night feels very different from walking through the city during daytime. Everyone is asleep, everything is quiet, and every noise startles you. The streets are no longer owned by cars. The air is cold and fresh.
It is a peaceful and eerie atmosphere. The image is supposed to capture that feeling. - I have parallelized the rendering process. This is implemented in the renderer. A variable amount of threads is created, that render multiple pixels. To avoid overhead, each thread assigns themselves a lot of pixels, which are written to the image at once. The main thread wakes up once a second to give an update about the progress.
-
Primitives are stored in a SAH based BVH. Additionally, have used the Möller–Trumbore intersection algorithm for triangles and quads, which makes intersection superfast.
I have only used 5200 primitives, which leaves render time for making every material some kind of mirror and having a lot of lights sources. - I have not used any third party assets or software. Every primitive is placed by the ray tracer. This is implemented in main/rc.cpp.
- I have implemented 3D curves which assign a time index to a point. These curves are sampled and then primitives are placed based on two sampled points. The street lines are made of quads placed on a polynomial curve. The houses, the lanterns and the sidewalks are similarly placed.
- I have added Cylinders which are widely used in the lanterns and the curly guy. The curly guy is mostly made of spirals with a changing radius. The spirals are approximated with cylinders ending in spheres.
- The street asphalt is an infinite plane. The Sky is modeled by an environment map.
-
I have added some texture editing utility in rt/textures/functional. Using that, I created textures for the sky and the house based on perlin noises.
For the sky, I gamma-corrected a perlin noise with a very high gamma. For the walls, I calculated the difference of the resulting color to the two colors, the perlin noise is initialized with. This gives us the edges between the high and low points of the perlin noise. -
The asphalt is made of a lambertian material. The stone material is a combination of a lambertian material and a fuzzy mirror.
The lanterns and the curly guy are made of a metal like material made out of a mirror, a lambertian and a phong material. The walls are made similiarly.
The windows are perfect mirrors. The head and the chest of the curly guy are made of glass. You can the see the street upside down in the head, if you look closly. - The scene is illuminated by area lights in the lanterns. Additionally the torse has been partly added as area lights to give the curly guy a red glow;
