Vertex Painting in Photoshop CC
After my initial impression of Photoshop CC’s 3D printing capabilities, I went back and explored its vertex painting capabilities. I 3D print a lot of colored figurines, and love to use vertex painting as a quick coloring method.
Vertex painting is essentially coloring an object in 3D. An object usually has a file defining its 3D shape and another defining its texture (color). Vertex painting dynamically colors the texture file, by projecting the brush strokes onto the texture map of the object. It’s a very speedy process, and lot of 3D modeling software has vertex painting integrated. I wanted to see if Photoshop’s was up to snuff.
Another concept closely related to texturing is UV mapping. It’s not enough to texture an object just based on its 3D coordinates. After all, the texture file is a 2D image. There needs to be a way to project the 2D textures to the 3D faces. That projection is known as UV mapping.
Software with vertex painting but no UV mapping utilities usually tries to automatically generate a UV map. The way UV maps unfold greatly affects how much detail can be painted onto an object’s face. Photoshop automatically unwraps a UV for you, if no UV is specified in the model.
On to Photoshop:
I decided to color a little robot designed by Steve from Sketchbot:
and a great tutorial to get myself started:
If you’re used to vertex painting, the interface is pretty standard. However, taking a look at the UVs reveal some problems.
Here’s the UV automatically generated by Photoshop:
See those dense clusters of vertices, like the parts corresponding to crevices of the arms?
It’s going to be impossible to get any sort of details in there (image if one pixel color an entire face).
I threw a checkered texture on the robot to get sense of where the textures are broken up.
I see a lot of non-optimal seams that are joined awkwardly.
For example, for the area around the leg, you can clearly see where one set of checkers end and another begin. In a really good unwrapping, the seams would be hidden. Here, it’s up to the texturer to hide the seams.
Although the Photoshop unwrapping is really good for a first pass, there are much better UV unwrappers out there. UVLayout is one. Its sole purpose is to create extremely nicely relaxed UVs, albeit for a more manual/traditional texturing method. Sculptris is another. It’s a digital sculpting tool that blows apart UVs for a nice UV set tailored to vertex painting.
I don’t believe Photoshop lets you manipulate existing UVs. So, for folks considering Photoshop to UV paint, I’d suggest using another software to UV map and then importing the mapped object into Photoshop. Otherwise you might to spend a lot of time manipulating the texture to hide seams.
So I colored the robot and named it Mechanical Bloomer.
My favorite part is the wires on its head.
It’s kinda cute :3
I tried to export it for 3D printing ’cause Photoshop bundles the ability to export to Shapeways.
Oh boy was it hard.
Well, the actual exporting was very easy, and Photoshop creates a zip of all the necessary files as well as additional files for Shapeways-specific 3D printing process.
Start of Photoshop CC 3pj file:
<?xml version="1.0" ?> <PrintJob> <Version value="1" /> <!-- 3D Printed by Photoshop CC --> <PrintTo value="Shapeways.com" /> <Printer value="Full Color Sandstone" /> <ScaffoldingNozzle value="0" />
Start of Full Color Sandstone file:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <Printer> <Version value='1' /> <PrintLocation value='Shapeways.com' /> <UploadURL value='http://www.adobe.com/go/psuploadtoshapeways' /> <PrintVolume X='250' Y='380' Z='200' /> <PrinterResolution X='2.5' Y='2.5' Z='2.5' /> <MeshRepairResolution value='7' /> <PrinterHeads value='1' />
Resizing the model while keeping the texture is a nightmare.
When Photoshop exports for 3D printing, it does mesh repair. As part of mesh repair, it consolidate faces, and thickens parts if they are too thin.
These are all really good features but they didn’t build it compatible with textures.
When I scaled down the model, the mesh repair created new faces that weren’t UV mapped correctly. Everything was fine at very large scales, but broke when scaling down.
In the end, I could not get textures to come out exporting correctly, and got frustrated, and used 3DS Max to export. Arg!
Overall I think Photoshop CC is a neat vertex coloring tool. It’s not exceptionally better than other software I’ve used, and might need a few fixes. Given Adobe’s reputation, I think it’ll definitely be better in the future.
My Photoshop trial ends in 14 days, so if they come out with some neat stuff, I hope to see it soon.
Edit: Pro-tip from a Photoshop developer: if you “Unify scene for 3D Printing” before painting, it does the mesh fixing beforehand, so there’ll be less UV problems later.