ART GALLERY

By Przemysław Leśniak

InSPIRATION

I was inspired by "Realistic Painting" picture POV-RAY hall of fame. I really loved the idea, because it was incredibly simple yet very creactive. Initially I wanted to do something similar, but there were couple problems on the way like my lack of modelling skills, so I was restricted only to models I could find on the internet.

While browsing models on blendswap I noticed there is plethora of high-poly realistic 3D models of sculptures, so I realised I can just make normal gallery, while models will do the rest.

Sculptures themselves aren't enough. I also wanted to show arts created by artists from my country - Poland. Here is a list of paintings used in picture:

  1. Bitwa pod grunwaldem - Jan Matejko (background center).
  2. Murzynka - Anna Bilińska-Bohdanowiczowa (background left)
  3. Jan Kochanowski nad zwłokami Urszulki - Jan Matejko (foreground left)
  4. Żydówka z Pomarańczami - Aleksander Gierymski (background left)
  5. untitled -Zdzisław Beksiński (background right)
The sculptures are Polyhymnia and Bust of Rhetorician. Vases are supposed to be ancient as well. Everything but pictures is inspired by antique, but both of them fit together really nicely.

FEATURES AND IMPLEMENTATION


Materials
 Looking at some marble floors on photographies from art galleries I observed that polished and clean marble can actually reflect light nicely and act as a mirror, thus I decided to add a little mirror effect to marble. Walls obviously aren't perfectly flat, in order to make wall a bit more rugged i decided to add bump map with high frequency value noise. What is also surprising, sculptures also have textures! But in order to achieve realistic results they are made of approximately 400k triangles each.

Area Light
There are 3 area lights in the scene. I decided to use stools instead of stronger materials to showcase vases and roman bust, since they provide better shadows, and the stool model I have is incredibly good. I decided not to put lights into the small lamps above images, because it would extend computations too much and extra lights didn't contribute too much to the scene. There was practically no point in using different type of light than Area Light, since everything else doesn't give such nice smooth blurred shadows.

Speed
Provided CMake doesn't apply link-time optimizations in release build so I had to tweak it a bit. Adding LTO gave me 4-5x speedup! For multithreading I used OpenMP library, but it didn't give any practical performance improvement from my naive multithreaded implementation. On intel core i5-i3230m it took approximately ~9h to render the image with 200 samples. Note that it has 1.2m objects. For intersections  BVH with median splitting was used.

Loading
Since I used Blender to model the scene and object loader implementation didn't support all features I had to add some extra code that modified materials that were necessary for the scene.

SourcesRealizationAnimation
Realization
Bonus Animation

~ Preview ~

I used blender to set up the scene
  • I used blender to set up the scene
  • My polyhymenia is better than blender's one!
  • Look at frame in the background. that's how far I could get with my modelling skills.
All models were taken from Blendswap:
  1. Polyhymnia
  2. Wall lamp
  3. Stool
  4. Background picture frame
  5. Greek vase
  6. Bust of rhetorician
  7. Baseboard
  8. Greek column
I had to download only one extra texture:

Credits to all authors of these incredible models. Without them I wouldn't be able to make the scene.
I had some spare time left so I decided to create small animation. If I had more time and perhaps faster computer I'd try to come up with better animation that shows scene better.
Used Materials