Create a Photo-realistic Rendering with Paul Paulino
Hello! My name is Paul H. Paulino [https://ca.linkedin.com/in/paulhpaulino/en] and I would like to share the process behind my latest artwork, a photorealistic rendering of a Canon Reflex Zoom 8-2. I will try to explain my thought process throughout the whole project. Before we start,
Hello! My name is Paul H. Paulino and I would like to share the process behind my latest artwork, a photorealistic rendering of a Canon Reflex Zoom 8-2. I will try to explain my thought process throughout the whole project. Before we start, I just want to say that this artwork wouldn’t have been possible without my mentor Justin Holt and my mentorship friend Christian Peck.
The purpose of the image
This piece is the second asset on my student demo reel at Think Tank Training Centre, and it was created within four weeks. I’m specializing in Texture Painting/Modeling for films, and I was mentored by Justin Holt, who wisely advised me to choose props which I could have in my hands. The head of my school, Scott Thompson, kindly lent me his Canon camera and, this way, I was able to observe textures and materials in real life and understand them properly.
I also decided to create a scene for it. I always like the idea of creating a story with an image, even if you just have an ordinary object in front of you. That being said, I didn’t want to spend too much time creating other objects for the scene because the main purpose of the project was to texture and render the camera realistically for my reel.
Trying different compositions
Throughout the project, I tried out a few different compositions. Here you can see some block outs that I did early on using a gray shaded model of the camera and other basic shapes.
In the end, Justin advised me to choose something simple, because the whole focus of the scene would be the camera itself, so I took a tripod at my school and I began taking some photos of the camera under a nice light setup.
Modeling the camera
The modeling process was pretty simple. I used Maya 2015, and the new modeling toolkit was really helpful and increased my modeling speed a lot. Since I wanted to create a realistic object and I had the camera in hand, I was able to use the school’s 3D scanner to capture its forms and proportions.
I wasn’t able to retopo anything from the scanned data since it was full of holes, but it was really useful for matching the proportion of the camera.
After getting the scan into my scene I started to block some shapes. I tried to keep it as simple as possible.
After positioning the basic shapes, I added small details to each block separately. During the modeling process, I had a reference folder full of hard surface tips. If you are interested you can check them out here.
A texture will stretch around a hard edge if that seam edge isn’t reinforced properly. To avoid this, I add extra support edges around hard edges.
These tips were essential during my workflow and I also got help from my knowledgeable friend Matias Trinchero who knows a lot about hard surface modeling and taught me a lot of cool topology tricks.
Before unwrapping, I would like to point out another important thing I always consider when modeling a hard surface object: I make sure to avoid stretching. A texture will stretch around a hard edge if that seam edge isn’t reinforced properly. To avoid this, I add extra support edges around hard edges.
After finishing the model it was time to unwrap it. When I’m working with a hero asset like this camera the UV’s are really important, but before unwrapping it I like to determine how close the screen will ever get to the object. The general rule for films is that there should be double the final resolution of the piece in texture resolution.
Having this in mind will allow you to have the exact amount of UV tiles that you need. It’s also important to have a uniform texture resolution across all of the model, except for very small pieces, which you can scale up to get more resolution.
After deciding how close I’m going to get to the object, I usually like to separate my UV’s based on materials. This way when I bring the whole object in MARI I’m able to make faster selections and also export each tile separately, making my life easier.
Auxiliary Maps – AO & Edge Mask (Mudbox and ZBrush)
Before jumping into texturing I baked an Edge Mask in ZBrush and an Ambient Occlusion map in Mudbox. Those auxiliary maps helped me a lot since they were used as masks to drive and isolate details in specific areas.
The edge mask is also really important because it can be used to darken edges of metal objects in the diffuse and specular maps.
Taking reference photos
An awesome advantage of having an object at hand is that I was able to take photos to grab small details and project them later. Since my friend Christian had a macro lens we were able to capture super small details, like the pattern on the camera’s body. Later on, I was able to create a tiled texture from it.
Since I had so many reference photos, I found this really useful software called Pureref, which helped me organize everything without having thousands of windows around my screen. (You should definitely check it out, it’s free!)
Creating Masks from photos
After taking reference photos I usually extract masks that are going to be used in the future. Details like texts, numbers and even small scratches can be really useful since some of them are very specific and you cannot find them online.
A texture library is one of the most important tools in the texture painter toolkit
Creating a personal texture library
A texture library is one of the most important tools in the texture painter toolkit. After each project, I make sure to collect and save all the textures that I used. I try to be organized and separate everything properly, saving me a lot of time in the future.
All the texturing process was done in MARI. In my opinion, it’s the best texturing software today and it has a variety of adjustments just like or even better than Photoshop. After combining the whole camera into one object with the UV’s separated by tiles I bought the mesh into MARI and started painting the diffuse map.
In order to keep everything organized, I created folders for each material and created masks for each one of them. After that, I started the textures by choosing a tileable texture that matches my material. After this first pass, it’s important to create more complexity by blending other textures on top.
One of the best ways to start creating an interesting texture is by adding a “breakup” textures on top. The breakup is really important because it’s going to bring more variation into the color and it will also be essential on the specular map. By using textures such as concrete or plaster you can achieve distinct color breakups, but it all depends on your reference.
I also created a broader breakup using loose strokes with a low opacity brush. This way you can create another interesting color variation to your object. If you make a good diffuse map, there’s a good chance your specular map is going to be pretty easy to make from there.
After I had finished the diffuse, I duplicated the channel and started converting it into a specular map. I added a Luminance adjustment on top of everything to get rid of any color information, and I also deleted any color adjustment that I had. After that, I changed the textures values with a levels adjustment, tweaking each one to get the best value range possible.
As you can see, the breakup texture that I have used on the diffuse map plays a really important part here on the specular map and is going to be responsible for the nice variation on the specularity.
Glossiness (or Roughness) Map**
The Roughness map is one of the most important maps and it is key to sell realism, so be careful with it. It will do a similar thing to the Specular map, except the tonal values don’t determine the specular intensity, they indicate specular highlight softness. When using Vray, white areas in the roughness will create a tight specular hit, and black areas a broader and diffused specular.
Usually, I don’t use the same textures that I’ve used on the other maps. If I’m creating a metal texture, for example, I use a texture with smudges and fingerprints, and it works out pretty well, but again it depends on the goal/reference.
Bump and Displacement Map
Before we jump into these maps, I should explain when you should use them. The bump map is going to be useful for details that don’t break the silhouette of the object, like scratches and surface variations. The displacement on the other side is going to affect the object’s silhouette.
After understanding this I started the bump map by getting a new tileable texture (or projection) that matched the reference. I used a breakup texture on this map as well, making the surface detail more believable and less procedural. Sometimes it can be a good idea to use the same texture that you have on your glossiness map in the bump map.
If you need to break the silhouette of an object, that’s when the Displacement map comes in handy. I created a 2D displacement in MARI where white areas are going to be displaced outwards and black areas are not going to be affected. You should know that in this case we are not using a 32bit EXR displacement map, which could be baked using ZBrush or Mudbox.
After spending time making the broad aspects of your object’s texture, I make sure to spend some time adding details such as decals, numbers, seams, etc. This last step will make the object more interesting and realistic. Also, used objects get dusty and dirty and I like to apply these details on a separate layer using a smudge tileable texture and the ambient occlusion map that I have created previously as a mask to drive the dust and dirt into occluded areas.
Also, used objects get dusty and dirty and I like to apply these details on a separate layer using a smudge tileable texture and the ambient occlusion map that I have created previously as a mask to drive the dust and dirt into occluded areas.
Creating the HDR for my scene
In order to get it looking realistic and also to learn something new, I decided to create my own HDR for the scene. Using a chrome ball that my school has I took a few photos at the life drawing room.
After finishing all the texture work, I exported all the maps and started bringing them into Vray. During this stage, I like to keep it simple and clean, so I only used the HDR that I created before.
One of the best things about the Vray 3.0 is the GGX BRDF. I used it for almost all my materials, but with different values for the tail fall off. In my experience, lower values (2.5 or below) on the tail fall off are good for metals and higher values (2.5 or above) are good for plastics. Of course, it also depends on your fresnel value and your spec maps.
While working on the look development, I like to work on each material separately and I also keep going back and forth in MARI to check and adjust my textures if I feel it’s necessary.
Setting the final camera
After finishing the camera look development it was time to create the scene for it. The first thing I did was locking the Maya camera for the final shot. Since I had taken a few reference photos before, I could grab the same specifications from my DSLR and apply it to my Physical Camera in Vray.
Having the camera locked I was able to see how much detail I was going to put into the tripod head; then I spent a day in modeling, texture and render, using the same techniques previously mentioned for the camera.
Finally, it was time to render! Here you can check my render settings for the still image and some render passes that I’ve used.
Compositing (Photoshop CS6)
After rendering the camera and the tripod, I brought the raw image and a few passes into Photoshop to start the comp process. I added a background photo that I took in the same room I used for the HDRI and I added gradient filters to give it a photographic look.
My final touch was adding a few lens dirt textures on top of everything and applying lens correction afterward.
This project was really important for me not only because helped me getting my first gig in the VFX industry here in Vancouver, but also because I was able to solidify all the knowledge that I’ve learned from my mentor Justin Holt throughout four intense months of mentorship at my school. It was an amazing experience and I just want to thank all my friends, teachers, and staff at Think Tank Training Centre.
Also, thank you for reading this tutorial. It means a lot to me, and I hope I have helped you in some way. If you still have, questions feel free to contact me.
And if you liked it, please show your friends and share the knowledge!