Guillermo Leal LLaguno of Steelblue created a virtual tour of the San Francisco Museum of Modern Art as his personal project. Click on the image below to experience the virtual tour, and read more to find out how it was made.
My name is Guillermo Leal LLaguno, I come from Monterrey, Mexico where I used to run my own company (Evolucion Visual), and I live in the US now for the past 10 years. I started working in 3D Architecture from the very beginning – in 1992 with the DOS version of 3D Studio Max. Now I work for Steelblue (www.steelbluellc.com) in San Francisco, but have kept my personal website for projects, scripts, and programs I write.
The Museum is located in San Francisco, California and was designed by Mario Botta. I liked the architecture from the first time I saw it. From time to time, I like to create a personal project where I don’t have to follow the client’s strict guidelines (that most of the time ruin the image!) and that’s why I decided to pick MOMA for my next project.
After a few months of working on it, I found out that the museum was going to be renovated. At first I was worried, but then it made me even happier, as thanks to my work there would be at least a virtual version still around. It took me a long time to finish the project. I started in 2013, but since I’m usually very busy with regular assignments, I could not keep working daily. Sometimes I had to put it on hold for months just to work on it for a few hours, and so on… In the end, I’m really happy with the results though!
Working with Corona
I tested this scene with several renderers, but I liked the results produced by Corona best – especially the lighting, which seemed particularly realistic to me. I also wanted to test Corona in a large scale project, not just some simple room or cornell box.
I have to admit that the workflow is fast, there is no unnecessary guessing about how things are going to look, and the real-time preview is very useful. It may be insignificant to some users, but I also enjoyed the material editor preview – you get the same shader in the material editor as in the final rendering.
At the beginning I had an idea to render some exterior shots, and since the bricks have a very specific design, I thought it was going to be an issue. At first I tried modeling the bricks with RailClone, but it soon turned out to be an overkill, so eventually I just used my RailClone geometry to create textures that were used as displacement, diffuse, and bump. It proved to be a smart decision, as this way I was able to produce the textures in any resolution, and in many variations.
Splitting the image into separate passes is essential for me. For example, when I experienced some fireflies on the displaced surface, I was able to extract the reflection pass, and remove the fireflies using an application I developed. This way I could render the image in short time. I also sometimes tweaked the direct and indirect lighting passes, depending on the shot.
I did experience some problems, but I believe most of them have already been solved in the newer versions of Corona, or will be solved in the future as the team is aware of them. My biggest issues were:
- 255 lights limit – 95% of the projects I work on are huge and this limitation was a big problem – this project had over 1500 lights in it! [see note below]
- There was a noticeable viewport slowdown when using many lights in the scene. With the aforementioned amount of lights it was hard to navigate. Fortunately I was able to write a light lister script which allowed me to tweak lights’ parameters even when they were hidden in the viewport. [see note below]
- Displacement sometimes caused performance problems – in fact, when I started to work on this project, Corona did not yet have displacement implemented. I tried switching to other renderers because of this, but quickly returned to Corona once the displacement was added.
[editor’s note – Guillermo was kind enough to send the scene itself to us for testing, thanks Guillermo! We’re glad to report that the viewport slowdown with many lights and the 255 light limit are both fixed with the release of Corona 1.4]
Corona still needs some polishing, especially for animation, but it’s already a great renderer. Another thing is its simplicity – Corona is extremely easy to use. Sometimes i just wanted to have more control and play with some additional switches or parameters.
One big plus I would like to mention is the customer support. That’s probably one of the most important aspects of any successful renderer out there, and Corona is definitely not an exception. If you have an issue or question, you can just submit a support ticket or start a forum thread, and get a fast response directly from the developers, support team, or the broad Corona community. You can only dream of such support from most software developers!
The Virtual Tour
I wasn’t originally planning to make the project into an interactive panorama. I decided to do it out of curiosity once the panoramic camera was introduced in Corona. The software I used to assemble all of the images rendered in Corona into a virtual tour was KRPano. Unfortunately the VR capabilities, which have been added in Corona Renderer 1.4, were not available at that time. The museum would look amazing in VR…
Apart from KRPano I used the following software:
Personal programs/scripts I wrote:
- Material Property changer
- Proxy Display
- Collect Files
- Glare 1.5 – it generates physically-accurate glare from a HDR image, this is a software I wrote back in 2009
- Despeckler – removes white speckles from images
- Noise remover – removes general noise
- And several more…
- GrowFx – for the trees
- Railclone and ForestPro – bricks, books
- Multitexture – wooden ceiling
- Photoshop cs6 – post work
Guillermo Leal LLaguno