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.

Oona

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:

Robot!

and a great tutorial to get myself started:

[more tutorial details here]

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:

Photoshop UV

See those dense clusters of vertices, like the parts corresponding to crevices of the arms?

arm crevice

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.

checkered

I see a lot of non-optimal seams that are joined awkwardly.

seams

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.

Petal Man

My favorite part is the wires on its head.

Petal Man head

It’s kinda cute :3

I tried to export it for 3D printing ’cause Photoshop bundles the ability to export to Shapeways.

print 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.

files

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.

missing

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: