Making Of 'Apartment'
The purpose of this project was to show how we would approach the interior visualization of an apartment. To make the whole thing more challenging and interesting, we tried to show different periods of the day so that we could experiment with the reaction of the materials to the different lighting situations. The most time-consuming part was the post-production, because it was primarily in that time when we decided on the final style for the visualization. In the end we settled on yellow/orange colors for the lights and the ground as it contrasted well with the blue wall and green vegetation.
Right from the beginning it was important to get a real sense of the layout and dimensions; therefore we remained in constant contact with a friendly architect, Bernhard Ortlieb, for the whole duration of the project.
This overview covers every stage in the process, including modeling, lighting setup, materials, rendering and post-production.
Modeling - Apartment
The modeling of the room was very fast, because it is just made of the following:
• Two glass facades
• A glossy stone wall with two insets, one for a picture and one for the bottles
• A wooden ground floor
• A ceiling with an inset in the center area in which borders are places for some indirect lights, that are covered by shades of frosted glass
• A balcony floor with colored stone tiles and a balustrade made from glass and metal
• Ground outside that consists of stones and a balustrade with glass
All this elements were built by box modeling. We added some details like an edge of stucco, drapes, door handles, and some modeled lights for the balcony, above the picture and also in the inset for the bottles.
Parts of the furniture are from our archives, where we store finished stuff for use in later projects. The couch and the armchair are examples for that. Some other furniture parts like the coffee table and the side tables were made especially for this scene.
We started to build them with the box modeling techniques and some modifiers like shell, push, etc., to add more volume and details. To have a nice reflection, especially in animation, we added beveled edges.
Some of the accessories are also from our library. We have become accustomed to storing every piece we use in any project that might be reusable. By doing that, we've developed a nice archive of small and large pieces for every possible occasion. Filling up a room with small details has become pretty easy over time. This has helped to greatly reduce the production times.
Other details like the wine glasses were made for this project utilizing spline modeling techniques. The carpet is just a plane with Hair & Fur and the vegetation is also made from modified models from our library.
Hint: Usually we just take simple planes for the window glasses, but in this project there was often the need to hide them in some passes. Because of that we connected the points of the plane to make it easier to see and select them. You could then immediately tell whether they were hidden or not without having to look into some object properties or menus (Fig.01).
We used two different systems of illumination for the lighting setup. The first approach was the use of natural lights, which consisted of a HDRI dome light and the V-Ray sun. The HDRI can be changed from day to night or a blend between these two states. The sun also has two different positions for noon and evening.
While the sun creates a warm and pleasant yellow color on the geometry, the HDRI contributes a cool light blue color to the scenery. At midday the sun has the most effect on the scene, but in the evening the sun intensity is much lower. Then the environment and the artificial lights of the flat have the greatest influence on the final look of the illumination.
To direct the rays of the sun and the HDRI into the flat, two portal lights were used - one for every glass facade. The convenience of this is that the settings of the light cache and the irradiance map can be much lower than without portal lights, while maintaining the same image quality.
The second approach was the use of artificial lights, which make up the lighting in and around the apartment. Examples for that approach are the spotlights on the balcony or above the picture and also the area lights that are inset into the ceiling. They all have a warm color to give the pictures a comfy feeling.
The VRay-Lights above the picture in the wall have IES-profiles to create a more interesting light effect. It also makes the beam of the lights more realistic. The emitters on the balcony and for the bottles are just spotlights, because a profile on the ground is not necessary and it renders much faster.
The greatest contribution to the room's illumination in the evening scene comes from the ceiling lights. We created a cylinder for each of the four sides and defined them as a V-Ray light to achieve a nice and soft falloff. This cost us a lot of render time, but we think it was worth it.
Hint: For the illumination and the reflection of the background we created two separate light sources. Both of them had the same HDRI, but by separating them, it was possible to have more control about these two types of rays. This was our attempt to emulate the possibilities that the use of a Raytypeswitcher in the background offers you in mental ray (Fig.02).
We knew right from the beginning that we had to create a lot of materials for the scene. That's why we split it up into separate geometry layers:
• Environment (e.g. background and HDRI for the dome lights)
• Room (e.g., floor, ceiling and wall)
• Furniture (e.g., tables, couch and carpet)
• Items (e.g., the bottles, clock and glasses)
• Vegetation (all plants)
• Specials (e.g., the chrome and glass parts of the lamps)
For every geometry layer we also created a tab in the Material Editor. This is very helpful if you have to take a look back at your scene a few months later. You always know where you have to search. It also makes interchanging the scene between different artists much more convenient. It is generally a good idea to clean up your scenes after each production step to get rid of unnecessary stuff that clutters up your RAM and makes working on the scene slower and slower.
The materials in the scene are not very complicated, but there are a lot of them. Nearly every material consists of a diffuse, a bump and a reflection map. Most of the time there is a falloff map in the reflection slot, which creates less reflection on the sides than on the front.
To increase the level of realism (and also the render time) the materials often have glossy reflections. That also created a nice effect at animation when the camera moved closer and closer to a reflecting object or along its surface.
Toggle Switch for Day and Night
For the background we developed a slider in Zookeeper (great plugin for 3ds Max), where we could easily switch between day and night. For the blend materials of the dome light and the background we connected the Bezier float value, which turned from zero to one (night and day). We also connected the slider to the lights, so they turned on and off depending on the value of the slider. Changing the time of day was by then just the mere flick of one switch (Fig.03).
Hint: For materials we often set a lower amount of reflection than they would have in reality, because we render out a raw reflection render element (Fig.04) and screen that in during post-production for important objects. There are two reasons for doing it that way:
• We can animate the reflection, if there is a camera rotation around the object (e.g., the ground). That makes a really nice blend effect from perpendicular to horizontal.
• We can set the intensity and the blurriness of the reflection mostly in the post. This greatly reduces render time because it minimizes the need for test renderings.
Another tip is to set a very low amount of reflection for every object that might need it. If this object is not reflecting in real, we set the value to 0.01%. The convenience of that is that in the post we can blur and maybe color the reflection of the object and use it to create additional specular effects. For example, for materials like silk it is much easier than to try to find the right values and maps in the Material Editor. It does increase the render time, but it is still much less time consuming then searching and experimenting for complex materials that work the way you want them and also create the desired look in the final image.
Rendering - Render Pass Manager
Blessedly we could use Grant Adam's RPManager for the project. With this plugin it is possible to save different settings for the scene in passes (Fig.05). The first and second pass for this scene were the calculations of light cache and irradiance map, without actually rendering the beauty picture.
The third pass was the beauty pass, which loaded the light cache and irradiance map data and rendered out the final picture together with some render elements like lighting, global illumination and raw reflection. These render elements are very important when you want to experiment with the final look during post-production. For example, we were able to increase the sunny summer look of the picture by simply screening in the lighting element some more. The beauty pass also had a render element called Multimatte, which created a mask of objects that could be manually selected (in this case the glass, because it was hidden in the AO Falloff pass, which we usually render the masks in).
The fourth pass was a rendering of the scene completely without lights and camera exposure and an override with a falloff material. This is good to be able to make some color corrections that affect the sides of objects. By doing so, you can create effects of roughness or effect lacquer. This pass also renders an element called "VRayExtraTex", which allows us to load a map (in this case an Ambient Occlusion map). Additionally we also rendered an element for the ZDepth and elements for the masks. Because the glass is hidden in that pass, it is possible to render masks for objects which are usually occluded by it. All four passes can be seen in Fig.06.
For the animation of this project we decided to calculate the light cache and the irradiance map in separate passes to load them into the beauty pass. The advantage over calculating them directly with the beauty pass is that only one frame has to be calculated. By using the option Use Camera Path, it is possible to generate the map in the first frame and V-Ray will calculate the rays of the whole movement of the camera in the active timeline. The results can then be used together with the light cache results to render out the beauty images with multiple different machines that only have to look up the illumination data. By doing it that way, you can make sure to have a convenient result without major splotches or flicker.
Another option for the irradiance map would be to calculate the map by Add to Current Map every 10 frames, but the single-frame-method is faster and offers better results if there is only little animation in the scene like noisy movement of the drapes and plants. It is really important to set Distance Threshold to a higher value like 0.3 when using this method in conjunction with small object animations.
At the beginning we had the problem that the samples of the GI on the ceiling were too big. At first we tried to increase the samples and subdivisions of the irradiance map, but after some tests and the realization that this needed too much render time, we decided to go with another method.
So we went on and increased the subdivisions of the light cache, because we thought that the floor was mostly illuminated by the second rays and thus increasing the resolution of the light cache would minimize the splotches. Actually this didn't change a lot in that area, but we had better results in small corners or under the couch (that's why the subdivisions of the light cache were left at 2000 - the calculation of it still finished in only half an hour per scene).
At the end we found the solution by merging the irradiance maps of every scene into one map. Usually objects, which have big planar areas, receive not a lot of samples. So we calculated an irradiance map for a direct look at the ceiling with high settings and merged it into our existing irradiance map. At the end our irradiance map had a size of 1 GB, but it was worth it, because now we had almost no visible sampling problems on the ceiling. Fig.07 shows the resulting irradiance map. You can watch your irradiance maps with the imapviewer, which ships with V-Ray.
Post-production - Selective Work in Fusion
The first step of the post-production was accomplished in Eyeon Fusion. The idea of this step was to match the contrast and colors for all objects to roughly one level, so the picture got a uniform impression (one example: the chrome objects were way too bright and had no contrast).
Usually we just render out masks for special parts like the ground, ceiling or couch, but this project was supposed to be a test balloon. First we tried to have masks created by object IDs from the G-Buffer of the EXR file in combination with the coverage channel. It is a good possibility because you are able to select the objects in Fusion directly by using the picker. But then we noticed that this way was too tedious because you have to merge the object ID with the coverage channel for every object before plugging that result as a mask into an image processing node like a color corrector. Most of the time it is much faster to just render out and use masks as filtered multimattes.
To have the chance to change color, effect of ambient occlusion, contrast and so forth for every object we decided to render out 16 multimatte elements. Every multimatte can hold masks for three objects, one in each color channel, so we had nearly 48 masks in the end. One the one hand it is beneficial to be able to change every object, but on the other hand it needs quite a lot of time because for color correction, ambient occlusion falloff and maybe reflection you have to set a node for every object. If you have 16 multimattes and make 4 changes for each of them, the result are 64 nodes you have to create and control.
Fig.08 is a screenshot of the final tree in Fusion. Inside the blue rectangle are the beauty pictures and the render elements like reflection, refraction, AO and falloff, which were loaded to form the start of the composition. In the red rectangle are the loaders of all multimattes and the green one holds the color correction nodes of all objects. The blueish green rectangle summarizes the additional reflections for some objects and the purple one is for the color corrections that use the falloff element as their mask. In the area of the white rectangle are the settings for the ambient occlusion effect for the separate objects. This is much better than just multiplying the ambient occlusion over the whole picture, because some parts may need it more than others. You have to use the ambient occlusion effect with caution, because overdoing it can result in an unrealistically dirty and dark picture. The black rectangle is the last one and holds the nodes for saving the final pictures. This tree looks pretty big, but only because we used so many masks. It was a good experience to have the possibility to change almost every single object, but it isn't essential for creating a good picture.
Fig.09 shows a comparison of the room before and after using Fusion. The difference is just subtle, but it is now possible to set the look from completely cloudy to sunny day without new rendering, just by using the lighting and global illumination render elements.
Corrections of the Whole Image in After Effects
The second and most intensive part happened in After Effects with the plugins Magic Bullet Looks and Frischluft Lenscare. It was primarily in this stage of the project that we set the final look of the visualization.
With Looks it is possible to bring the picture to a high end color finish by using exposure, gradient, glows, vignettation, color curves, saturation and a lot more features in a very natural and fun way. By using the tools in different areas like subject, matte, lens, camera and post you can reach different results in minutes. A big plus of Looks is the presets, which help to quickly try some rough concepts before working everything out in detail.
For this project we used a lot of spot exposure to light, shade or color different areas of the picture (e.g., we set the wall to a cool blue color and the floor to a warm yellowish orange one).
Additionally we often used a gradient (mostly from top to bottom or from corner to corner) to set the focus in the picture. A tool that we use at almost every occasion is Glow (Diffusion) to give a stronger, but at the same time softer, sense of the sun's energy. To improve a bit on the realistic look of the picture, we started to include some camera errors like chromatic aberration, vignetting and some edge softness. At the end we set the final look by using a color curve to strengthen the contrast. For this project we also used some color curves to increase the blue colors and decrease the red ones to give the whole image a more specific, movie-like look. Fig.10 shows a composition in Looks.
To make a picture more pleasant and interesting, the use of depth of field is a good thing. It helps to guide the viewer's eye through the picture and let it rest on areas you want to emphasize. If you want to show some special part in the background, you can blur the foreground or vice versa.
To reinforce this, you can also play with the brightness and contrast of those areas. Things you want to highlight can be the bright ones in a mostly dark and blurry environment. That helps to make them stand out more.
For the depth of field effect we used the plugin Lenscare by Frischluft. Lenscare is one of the best tools for this kind of effect. You can set the sharp and blurred areas by using the ZDepth render element and adjust the intensity primarily in the post and almost in real-time. It helps to save a huge amount of render time and makes experimenting way more fun.
It gets a bit complicated when you've got transparent layers inside of your image. We accidentally ran into that problem because of our transparent balustrade around the balcony. The glass was active in the ZDepth layer and thus we were not really able to create a convincing blur for the areas of the background that were occluded by the glass. Fortunately, this mistake is not very noticeable and we will definitely keep that in mind for later productions.
You can have a look at our settings and the result of Lenscare for one of our pictures in Fig.11.
Fig.12 shows a comparison of the room at late noon before and after using Looks and Lenscare.
Fig.13 shows a comparison of the room in the evening without artificial lighting before and after using Looks and Lenscare.
Fig.14 shows a comparison of the room in the evening with artificial lighting before and after using Looks and Lenscare.
This is the end of the project overview for the apartment and it was a pleasure for us to show you a bit of our workflow. We hope you had fun while reading the text and looking at the pictures. To see more of our projects, visit our website: http://www.lefx.de/referenzen/ or have a look at our blog:http://www.lefx.de/blog/
Feel free to ask if there are things you'd like to know and if you want to keep updated with new stuff, follow us on twitter: http://twitter.com/LeFx_News