• CGSociety :: Tutorial

    21 August 2013, by Toni Bratincevic

    In creating ’Level 10’ Toni Bratincevic went to new heights in quick concept modeling. Bringing an earlier sketch out of mothballs, he reinvented a scene from his childhood. He then presented it as his entry for the CGSociety CGChallenge TEN, and took the Character Prize. He also was awarded the Steampunk Master in EXPOSÉ 11 as well as a CGChoice Award. Toni Bratincevic walks us through the creation of his multiple prize-winning 'Level 10' image.


    When CGSociety’s CGChallenge ‘TEN’ was announced, I'd spent a couple of weeks trying to figure out a good concept for the image I will be competing with. I did some quick sketches, explored different ideas and integrations of the topic but I wasn't very successful. After several failed explorations, I remembered that I had something interesting in my sketchbook. This was a very rough idea for ‘Level 10’, actually sketched with pencil on paper a couple of years ago but it was very different to the final image. This was just a simple scene with a kid playing on an old Commodore 64 computer. One of the main reasons I wanted to do that image was related to very positive public response to my image ‘16-Bit Memories’, for which I received a lot of emails from people interested in the themes of retrocomputing and retrogaming.

    Starting from that initial sketch, I did a quick ten minute concept in Photoshop which served as a base to start building a layout. That initial concept was about a kid reaching Level 10 in Tetris, and since it was a Steampunk Tetris machine, it exploded when it reached Level 10. The drama of the image was the strong shock wave, lifting the kid from the ground, still holding his joystick tightly. With some further modification, I locked in the final version of the image. This last modification actually made a much stronger composition and was way easier to light compared to previous iterations.

    personal personal personal personal personal personal personal personal


    After the initial concept has been finalized, I usually start with some very rough layout modeling and camera setup. At this stage, my goal is to make very loose models without details, while building strong forms, basically making very broad strokes that define modeling shapes, composition and lighting of the image. Some of the modeling was done directly in the scene starting with the simplest of objects like a box, sphere or cylinder, while other parts were just reused from some old projects. Remodeling everything for every new image would be a slow process so having a good library of objects that I’d used before allowed me to make very fast progress during the first week. I partially remodeled some models that I had taken from my library. The only thing left after that point was to make the image richer with details placed on top.

    Most of the modeling for Level 10 was made in Autodesk 3ds Max 2012 in combination with Pixologic ZBrush 4.5. For hard surface modeling I did almost everything in Max using basic Edit Poly tools like Extrude, Chamfer and Connect. For the character, the initial base model was done in 3ds Max, brought over to ZBrush as OBJ file and sculpted. When I was done sculpting in ZBrush, I exported the high poly model from ZBrush and imported it to 3ds Max. Usually, if the character is made for animation or further posing in 3ds Max, I export a lower level of geometry and extract the displacement, but since I posed the character using transpose in ZBrush I didn't worry too much about rigging or deformations in 3ds Max so that was the main reason why I used the high poly model. I didn't bother too much with sculpting parts that won't be visible since I didn't have a lot of time, so only surfaces pointing directly toward the camera were detailed. UVs for character were also made using ZBrush UV Unwrap tools which usually produce nice unwrapped model without too much additional work.



Photoshop was used to paint all textures for LEVEL 10. I usually start texturing and materials even before modeling is 100% done. The reason why I start texturing relatively early is because I love working on my personal stuff in an iterative way, so even after a couple of days I have the first pass of modeling, texturing, lighting and compositing done. This process can save a lot of time since it's very easy to figure out what parts of the scene are in focus, what needs to be detailed and refined and what is considered a second category model.

    For most of the objects, I relied on procedural shaders mixed with tileable textures. Once I define good procedural materials I can propagate it to everything in the scene and do a quick render to see how the image looks. After this point, I decide what part of the scene needs more texturing and I then treat those elements as unique, assign new materials to them and do custom Photoshop texturing for those specific objects. I usually don't do clean UVs on my objects. Once I define what objects need to have unique treatment I unwrap them and create nice UV domains for painting in Photoshop. Since I don’t use 3D painting software like MARI, I usually bake the occlusion and UV maps for some objects to detect where corners and contact points are. This is done using V-Ray light material with V-Ray dirt applied as a map. I then use the texture baking tools in 3ds Max to render those into TGA files and bring them into Photoshop to use as mix maps with other textures to get the layer of dirt or other effects.


    personal personal personal personal personal


    The lighting setup for LEVEL 10 was done completely with V-Ray lights. My initial idea was to go a safe route, mixing warm and cooler tones to direct viewer's attention to places of most importance like the character and computer. Because of that, a strong planar light was placed in front of the screen to boost up the effect of the screen lighting the character. This cooler light produces a nice reflection on the computer and other metals in the scene.

    A few other warmer area lights are used as fillers around the scene to raise the overall brightness, bringing a balance with the cooler lights. To break this clean combination of complementary light colors, I placed a couple of smaller red lights around the scene, introducing more variety and richness into lighting setup. These red lights are very small spherical lights placed strategically inside mechanism on the left, not intrusive, but they cast enough light to interfere with monotony of the complementary (warm-cool) color setup.


    Five years ago, V-Ray became my choice for rendering because of its speed, great features and fantastic GI engines. Its global illumination setup was based on Irradiance mapping for primary bounce and Lightcache for secondary bounces. This produces very accurate bounce light solutions. I get very detailed and high quality GI from Irradiance mapping and almost unlimited GI bounces from Lightcache engine. Since I used relatively high poly geometry and didn't spend time optimizing the scene, memory usage went to 10GB, but usually if I reach memory limit in V-Ray I start using proxies to further optimize my scenes.

    Foreground defocused elements on the left and right side of the image were separated and rendered as a new pass. This is because it is easier to make color corrections in compositing. The character was also separated into a new render layer for the same reasons. Shademap (the V-Ray stereoscopic modifier) was used to increase the speed of rendering with DOF. The way Shademap works is that it does its first pass rendering without any DOF or motion blur. It bakes that information onto objects (similar to pointcloud) and then during the second rendering pass it reuses the baked shading information to speed up DOF and motion blur rendering. This can sometime lead to 2X time increase in rendering speed for scenes with strong DOF effects. The nice thing about Shademaps is that once you bake the shading data onto objects, re-rendering the scene with different DOF settings is a very fast and iterative process. I can try a few different F-Stop settings or motion blur offsets without the need to wait too long to get some feedback.

    personal personal


As mentioned, I had three different layers I rendered from V-Ray for compositing. Firstly, there was the environment, then character as a separate pass and finally foreground elements. Fusion was used to compose these three elements together. Small color correction tweaks were made to make the image more balanced. Masks were used on a specific area of the scene to boost up gain and contrast, so it was easier to focus on what's important in the image.

    I added a small amount of defocus to the foreground elements, and in the end I usually do some sharpening of the image and add a little bit of film noise. All layers were rendered as Open EXR (half floating point) to keep all the color information for more precise compositing. The final image was rendered in 4K resolution, while WIP images were made as 2K. The good thing about compositing in Fusion compared to Photoshop is that once the compositing flow is established it is very easy to plug a new image with its different resolution as a source. All the other nodes in flow will automatically scale up to that resolution without any need for additional tweaking.

    I am pleased to hear the final image was well received by the public. It is sometimes hard to be your own judge since subjectivity interferes with the way you see quality. Standards that are used to judge other people's work can't be used in the same way, so having other people judge and criticize my work is the most objective feedback I can get. I send big thanks to my environment team at Blizzard Entertainment for their objective feedback! I must say I didn't expect to win any prize or competition since I felt it was not a fully polished work, but once I saw the results I was very happy with the outcome. After that, it was also published in few magazines, used as a cover for one digital magazine and got the CGTalk CG Choice Award so it looks like it was quality work after all.

    I want to thank CGSociety once more for organizing this interesting and challenging competition and for maintaining one of the best knowledge resources for 3D artists.



blog comments powered by Disqus