Making Of 'Mustang 1970 Mach 1'
My name is Tom Isaksen, freelance 3D artist and owner of www.characterink.com . 3DTotal asked me to show how I created my Mustang 1970 Mach 1 render, so I jumped at the opportunity to share some of my techniques.
This tutorial goes through the process of making the model and render using a photo backdrop and an HDRI map for the scenery and lighting. I used 3ds Max, ZBrush and V-Ray, but you might find the tutorial useful even if you use other 3D programs.
I gathered all the information I could find out there including, pictures, blueprints and specifications. I searched www.the-blueprints.com for schematics and car part stores for detailed pictures of individual parts. Unfortunately I couldn't find a really good blueprint, but I found one that was close enough. I used to own this car, so I was lucky to have a bunch of my own photos for reference (Fig.01 - 02).
I started by setting up some planes and textures with my blueprints, making sure I got the right aspect ratio by mapping to the bitmap dimensions. In 3ds Max you can do this by applying the UVW map modifier and choosing bitmap fit. I also matched to real world scale to avoid any scale problems later on (Fig.03).
Next I created an evenly spaced spline to match the wheel arch (Fig.04).
When I was happy with the spline I simply extruded the spline to create the first part of the polygon mesh that will form the entire chassis (Fig.05 - 06).
From here on I just extruded edges while keeping an eye on the blueprints to get the shape right. I always swap between side, front and perspective when I model. Hold down the Shift key as you move edges to extrude (Fig.07).
I slowly expanded on the mesh, trying to keep the polygons evenly spaced and in quads, as triangles can create odd smoothing errors. I added double edges close together where I wanted hard lines in the mesh (Fig.08).
As I kept building, I considered applying a standard material with a slight specular value as doing this helps you to see if you get odd shapes in there. I also kept turning subdivision on and off to see if I was getting the right shape (Fig.09).
I built the chassis in more or less one piece to begin with, making sure I had edges where I wanted to split up the parts later. This helped the continuity of the chassis. For old cars like this I like to keep things a little imperfect, keeping age, wear and tear in mind, even for the shape of the chassis (Fig.10).
Half of the car was done, and all I needed to do was spilt up the parts and mirror. I used instancing whenever possible so that any changes I made were automatically mirrored to the other side of the car (Fig.11 - 12).
At this stage I like to add thickness to the chassis, so I used a Shell modifier to give each part a few millimeters thickness. Note that I ticked Select Inner Faces when creating the shell. It should be noted that adding a Shell modifier changes how your mesh subdivides and you will have to add more edges to control the shape (Fig.13).
With the inner faces selected I chose to unwrap; this automatically isolated the backside of my mesh. I did a planar unwrap. I didn't worry about perfect unwrapping at this point; I simply wanted to define my unwrap seams while I had the correct polygons selected, to save time (Fig.14).
Now I unwrapped the rest of that mesh by applying UV unwrap on the whole object, so now I had a perfectly positioned seam between the front and back of the mesh. At this point I could have chosen to improve the unwrapping in 3ds Max to create nice, even UV-coordinates, but instead I used the UV Mapper plugin for ZBrush to unwrap my mesh once I had defined the seams. You only need to create UV coordinates on the parts you plan to texture (Fig.15).
I started to model all the various parts, trying to keep the subdivision level as low as possible, otherwise the car would have quickly become slow to work with. I then used a Subdivision modifier to smooth the mesh (Fig.16).
The tires were a little tricky. Based on my reference I felt the pattern on my tire should be repeated about 90 times, so I created a cylinder with 90 subdivisions with the size I wanted for the tire. I then copied a couple of the faces to model the tire track pattern (Fig.17).
With the tire track pattern modeled, I simply copied and rotated the mesh 89 times. In 3ds Max, this involved using the Rotate tool, and holding Shift and Rotate while making sure I kept the pivot point of the original cylinder. And voila... tracks (Fig.18 - 19)!
I welded all the points together by selecting the borders, Ctrl + clicking the vertex selection and hitting Weld. This is the easiest way of welding the points you want and avoiding welding points you shouldn't (Fig.20).
Next I started to shape the rest of the tire by simply extruding the borders (Fig.21).
The complete tire was modeled with the Magnum 500 chrome plate rim. I created the UV coordinates on the tire so the seams were hidden between the tracks (Fig.22).
I added a cage deformer to the tire to make it flat and bulge a little to give some weight to the car. By using this cage deformer I was able to rotate the wheel later on and keep the deformation at the bottom where the tire meets the road (Fig.23).
The only parts I didn't fully model in 3ds Max were the seats. I did the basic shape in 3ds Max, then imported to ZBrush to add detail (Fig.24).
In ZBrush I added some randomness to the seats, making them look old and used, using only the Standard, Pinch and Inflate brushes (Fig.25).
I unwrapped in ZBrush based on seams created in 3ds Max, and then use used the Decimate plugin to reduce the polygon count (Fig.26).
I created the text emblems with splines (Fig.27).
I extruded and made a copy. Then I selected the outer polygons all around the letter and deleted the rest (Fig.28).
With a shell modifier I then created a nice border on the letters (Fig.29 - 30).
I added some details to the interior, but since I wanted to do a mainly exterior shot I kept it simple, just adding enough to show what is visible from the outside and something to create reflections on the windows (Fig.31).
Fig.32 - 33 show the modeling all done.
Materials and Basic Setup
I started slow by adding some basic V-Ray materials to the car, and a simple sun lighting and camera setup. Everything was at their default values for now (Fig.34).
Fig.35 shows some simple materials I used to get started. For the car paint I used VrayCarPaintMtl and for this I set the flake size to 0.0 since I didn't want metallic car paint. For the windows I used a standard VrayMtl with Refraction and Reflection set to White, and a Falloff modifier in the reflection slot so that I had more reflections on the edges and less straight on, so you could see though the windows.
Fig.36 shows the first render. It was a pretty good start, but since I was aiming for HDRI lighting now was a good time to start thinking about that. It knew it would have a great impact on the look of my materials so I had to get this sorted early on.
I assigned a VrayHDRI to my environment map slot, then dragged and dropped it into the Material Editor (choosing Instance) and assigned a map. Next I assigned an appropriate HDRI map and set it to Spherical. I created a V-Ray dome light in the scene, and dragged and dropped the VrayHDRI into the texture slot. There are a lot of places where you can get HDRI maps for free; I bought mine here: http://www.hdri-locations.com (Fig.37).
I assigned a VRayMtlWrapper material to my ground plane, just so the car wasn't floating. Then I assigned a standard black VrayMtl to the base material slot. When you do this, if you don't use caustics you can disable those. This will render the shadow of the car, but let you see the HDRI map behind.
You might want to adjust the strength of the sun and adjust camera settings. It really comes down to your choice of HDRI map how the settings should be. If there is a sun in your HDRI map, make sure to position the sun in the scene accordingly (Fig.38 - 39).
With HDRI and basic materials set up, it was time to add some textures to the scene.
Texturing the car was relatively straightforward. Most parts already worked quite well with just a simple shader. The main things to add were the decals, and some dirt and imperfections. The interior was the most texture heavy part, with things like the leather seats and panels. I used mostly textures from the 3DTotal Textures collection.
To get started on the seats, I exported a cavity and ambient occlusion map, and combined them in Photoshop to give me the base of my texture. Then I used tileable leather textures to create a pattern, giving it a useful name, as well as the bump and specular leather textures (Fig.40).
I then created a new layer use the Fill (Shift + F5) function, chose the pattern I'd defined and clicked OK (Fig.41).
Then I multiplied the layer (Fig.42).
And finally I used Hue/Saturation (Ctrl + U) to adjust the layer (Fig.43 - 44).
Here's the result (Fig.45).
For the decals and paint job in general I used very high 8192 x 8192 maps, diffuse and bump map. I also added some dirt and dried out water drops. The dirt maps were from the 3DTotal Textures: V08:R2 - Vehicles DVD (Fig.46 - 47).
To create the text on the tires, I used a displacement map, and added some subtle dirt and scratches to the chrome and metal parts (Fig.48).
The headlights were done with a simple glass material with a displacement map. I UV mapped the glass so the displacement map would be on the inside and kept the outside surface smooth (Fig.49).
With everything modeled and textured it was time to render. For the background I used a photograph. The trick here is to match your camera angle and lens to the one used in the background photo, and then have your ground plane match with the ground in the image. To help adjust the camera angle you can make 3ds Max show the background image in the viewport (Fig.50).
Here are my camera and light settings. These settings can have a huge impact on your render, so use them with caution. I set a high size multiplier and low intensity on the sun to get a softer shadow for my somewhat overcast setting. Pretty basic settings otherwise (Fig.51).
Here's the final render, a reflection pass and a ZDepth render. To create a ZDepth element simply go to the render elements in your render settings and click Add. Choose VRay2Depth and set the distance. All that is left is a little Photoshop touch up (Fig.52 - 54).
In Photoshop I enhanced the colors a little, added a little depth blur so the car matched the background better and painted my reflection pass into the water puddles on the ground. To use the ZDepth map for blur, assign it to a mask on the image you want to blur and use the Lens Blur filter. Remember to delete the mask after you've assigned the blur (Fig.55).
I created a little chromatic aberration to help mix the 3D with the photo. Chromatic aberration happens in real life when you take photos with cheaper lenses, so use it with caution (Fig.56).
Here's the final image. As a last touch, I added some noise to the image and maybe a little color grading. The noise I added because the photo background had some noise already, so this helped further integrate the 3D (Fig.57).
Overall I created way more details on the car than I needed for the final shot (Fig.58), but it's great not to be restricted when you start rendering, experimenting with camera angles, etc. You can see a few more renders on my website: http://www.characterink.com/2012/05/15/mustang-mach-1/
Thanks for reading.