Copy vertex colors between meshes


I’m wondering: is it possible to copy a vertex color channel from one mesh to another (given that they have the same topology) ?


Check out thje DataTransfer modifier, Vcol is in face corner data.

If you mean an individual channel by R, G, B of RGB , then you probably can use “Vertex Color Master” after transfering the colors you need.


Thanks @kkar, I’ll check that out. What I’d need it for is to create several masks using Polypaint (= vertex color) in ZBrush. As ZBrush doesn’t have multiple Polypaint channels, it could be a solution to transfer different vertex colors from multiple exports of the same object.

An alternative would be to UV-map the object and save the masks as bitmaps. I’ll have to see what the ups and downs are of each approach.

ZBrush can do multiple Polypaint ( vertex colors) , they are saved per Zbrush layer.

Vertex Color Master addon lets you convert vertex color to weights, if you need to use them as weights. I just used it the other day.

1 Like

Thanks for the tip. Do I understand correctly that sculpt layers with different masks are saved as multiple vertex color channels when exported with the FBX Import/Export zPlugin?

Well, you originally said Polypaint not mask. if so it should ideally save them in those formats. I did not try that with those formats myself.

If exporting that way does not do what you need. Then you can use the Blender GOZ addon to bring individual polypaints as vert colors (this used to work in 2.79b) and transfer those vcols using the data transfer modifier multiple times.

Actually, it would be better if you could tell me exact the steps of what you need . I can try to understand the issue at hand here. I think I would like clarify if you are trying to get your ZB masks out or ZB poly paints out.

Hi @kkar,

Thanks. What I need in Blender is to color different areas of a mesh using black and white vertex colors as masks. I’d love to be able to Polypaint in ZBrush to establish those black and white vertex color masks, because at the moment Vertex Paint mode in Blender 2.8 is slow beyond around half a million polygons.

Ideally I’d like to export an FBX with multiple vertex color channels from Polypaint layers, but otherwise I can try the Data Transfer modifier to combine vertex colors from multiple exports of the same mesh.

If GoZ for Blender supports conversion of multiple polypainted layers to vertex color channels, then that’s great.

First of all, are we talking realtime or rendertime?

Even if you cant get those multiple polypaints in one go, I think you have good options. You can export them separately and use the transfer modifier that I mentioned multiple times to apply to the Blender mesh.

I did not try GOZ with multiple vert colors, but I tend to remember that it carried vert colors both ways.

Another option can be to use R,G,B as individual masks areas in ZBrush. You can use Vertex Col Master to use each channel. That way one polypaint can hold 3 different masks if you will.

If all fails there can be couple other crude methods to bring those meshes and utilize them in Blender for what you are looking for.

1 Like

Hi @kkar,

I use a black and white vertex color channel as the Factor in a MixRGB node, to mix two colors at rendertime, using Eevee or Cycles. Multiple vertex color channels allow for more intricate color area mixing.

I haven’t got GoZ for Blender installed anymore, but it’s been tried and layers currently get flattened to one vertex color channel.

Interesting. The only drawback of that would be that a color can’t overlap an other color. Using blend modes in a MixRGB node, you can create interesting blends where black and white vertex color channels overlap.

But maybe I don’t understand it correctly, and there’s a possibility to draw with the R, G and B channel separately in ZBrush?

Thanks for thinking along, appreciated.

My assumption was that areas of masking do not overlap, so you understood it well.

I used that method as well, actually I made an addon that converts weights to vcol just for that purpose, so I could use bone weights as masks in the node tree.

Yeah mostly likely true, and that is fine. You can save them as individual objects and transfer them individually in Blender since you can use the transfer modifier multiple times on an object no problem.

1 Like

Feel free to provide me a painted mesh from zbrush and a basic blend file, I can try to test the idea when I have time later today.

1 Like

Thanks @kkar, I’ll do some tests myself, no problem. You’ve already provided useful insights, which I appreciate.

No problem for me, I am always interested in pipeline issues. This area needs massive improvements in general.

1 Like