Creating & Texturing A Football / Soccer Ball Using 3DSMax
Several people have asked me how they could texture a football generated with my Football Ball Maker script. The first, and ugly option, would be to flatten the UVs in an unwrap modifier and then texture it in a 3D painting software like Mudbox/Bodypaint etc. The second option would be to create a low poly ball, unwrap it and then generate a normal map for the patches from the high poly model.
This is the solution I will describe in this small tutorial.
Generate a football with the script (Download link:) (Fig.01).
Hide the football and create a Box at position 0,0,0 (Fig.02).
Unwrap the Box. You could just use the flatten UV button but I find the right unwrapping of a box a more elegant way to proceed. You can also paint your texture in an easier manner afterwards in a 2D painting program, since you can see where the polygons seam will be (Fig.03).
Apply a Turbosmooth modifier to make the box smooth enough to look like a sphere (Fig.04).
Apply a Spherify modifier with a value of 100 percent in order to make the box look even more like a sphere (Fig.05).
Apply another Turbosmooth modifier and you have an unwrapped sphere (Fig.06).
Unhide the high-poly football made with the script and scale up/down the low poly to match the radius. Both balls should overlap, as in the picture, in order to get a correct normal map (Fig.07).
Select the unwrapped sphere we just made and press 0 or click on the Render to Texture button (in the Rendering rollout menu). Click the Pick button, select the football generated with the script and click Add.
Enable the ticker Enabled Projection right next to the button Pick.
In Mapping Coordinates, Object should be Use Existing Channel and Sub-Objects should be"Use Automatic Unwrap (Fig.08).
A projection modifier should be added on top of your unwrapped sphere stack. In the Cage rollout click Reset first, then enter an Amount of 0.5 to make the cage big enough to bake all the high poly information for the normal map (Fig.09).
In the Render to Texture dialog, click Add and select NormalsMap from the list (Fig.10).
I know it might sounds huge for some of you, but I get better results with a width and height of 4096 for my normal map texture. You can still enter a smaller value but if you get artifacts or small deformations it might be better to stick with 4096 pixels. Press the Render button and wait until the baking dialog disappears (Fig.11).
The result should be this normal map texture. If, for some unknown reason, you see artifacts in your normal map texture then there is a big chance that your amount value in the projection modifier is too small. If this is the case then raise the amount value and press Render again until all artifacts disappear (Fig.12).
Open the Material Editor, click the Bump map slot, select Normal Bump, click the Normal button and select your generated normal map texture. Raise the default value of the bump from 30 to 100. Apply the map and hide or delete the generated high poly football since we don't need it anymore. You should now have a low poly unwrapped sphere with patches in your render. If you want to see the normal bump in the viewport, you can preview your shader in DirectX mode by maintaining the preview button pressed and selecting the pink preview button (Fig.13).
Side to side the high poly football generated with the script and the unwrapped version. You can now paint the ball in a 3D painting software. I used Sculptris (http://www.zbrushcentral.com/showthread.php?t=090617) since it's free, just to show how seamless the blue line is. But you can also export the UV unwrap texture and paint in Photoshop for example, it's just harder to get the seams invisible. You could also export as an OBJ, and load it into Photoshop CS3 or later and 3D paint onto the ball (Fig.14).
Note that the texturing is nothing serious, just to show how well it works (Fig.15).
And the diffuse texture (Fig.16).
You can also watch a project we did at Monologue using this script: http://www.monologue.gr/data/project_video/cosmote_stadium.mp4 (Fig.17).