December 2nd, 2008
A couple weeks ago, I agreed to help a friend with a commercial project that he got. The project is to create a minute long animation of a grasshopper dancing to some pop song. I have no idea what the commercial is for, or why they need it to start dancing, but I figured this would be a great way to occupy my off hours, as well as make some extra cash.
My part in this project is to texture and shade the grasshopper. My friend Chris modeled the grasshopper and he’s having another friend rig and animate it. The client told us that he wants it photo-realistic, so that has influenced the modeling and texturing, but I’m quickly realizing that pretty much everyone wants “photo-realism”, but quickly backs off from that when they realize what it would cost.
Anyway, I’ve spent the past week and a half laying out UVs and painting textures. I did the UVs in maya, and the textures in Photoshop CS4. This was the exciting part, since CS4 saw the addition of 3D paint tools to Photoshop! 3D paint has been around a long time in Maya and I’m sure in other programs, but the best program for creating textures has always been Photoshop (in my opinion). The tricky part has always been hiding seams in the UV map. Adding 3D paint to Photoshop solves this problem handily.
Here’s a quick run down of the process…
Photoshop can now read .OBJ files and a small number of other 3D file formats. I exported each piece of geometry from maya as .OBJs individually and imported them as 3D layers in Photoshop. I could have loaded all of them into the same document, however that would have been quite memory intensive, so I did only one piece of geometry per file.
I then discovered that they’ve added a lot of 3d functionality to Photoshop. With geometry in the document, you can add lights (directional, spot and point lights), multiple cameras and various geometric primitives. Selecting the mesh itself reveals a host of texture maps that Photoshop is capable of interpreting. These include diffuse color, specular color, bump and a bunch more. The renderer built into Photoshop is capable of interpreting all of these elements, however it doesn’t do it particularly well. However, this doesn’t really matter since I’m using the maps in Maya anyway. The fact that it shows the texture on the model at all is more than enough.
Painting on the geometry was a breeze. You can use absolutely any brush, my favorite being the clone stamp tool. To see the 2D texture, you just double-click on it in the layer list. You can even paint in 2D the traditional way, and click back to your 3D comp to see the changes.
When you’re done, there’s a simple “Export 3D Layer” option that spits out another .OBJ (or whatever format you want) along with all the texture maps you created in whatever format you choose. Saving the source is simple. All the source material is stored in a single .psd file! Using the textures in Maya is exactly as it’s always been.
Here are some renders of the Grasshopper still in progress:
I think what I like best about this whole process is not the actual 3D painting. Yes, it is really useful for cleaning up seams and accounting for distortion, but the real value is the workflow problems it solves. Instead of having to manage a million separate photoshop files that have to be flattened before being used in Maya creates a serious gap in time between adjusting a texture and seeing the result in 3D. With this new functionality in Photoshop, it’s possible to preview a lot of things like color and alignment before having to bake everything out for use in Maya.
I’m really happy about this, and I hope others find it useful as well!