← All ideas

Per-Channel Vertex Color Painting/Viewing

Proposal:

Similar to how Photoshop allows users to isolate/edit individual RGBA channels of an image, doing the same with the vertex color channels in blender would be incredibly useful.

Problem:

I would like to store multiple data sets in the vertex color channels of a given mesh. For example, Storing Ambient Occlusion in R, Baked shadows in G, etc. This is not easily achievable currently, and editing any one channel, without altering the others, is nearly impossible. This is much cheaper than storing this data in a texture, and is ideal for use on mobile platforms.

The Rough Workaround:

The only (rough) workaround I have found is to set the vertex color picker to a fully saturated R, G, or B, then enter either additive or subtractive mode, before painting/altering the existing vertex colors. Viewing/isolating colors on individual channels is not possible.

Justifications:

I do a lot of 3d videogame modeling & shader work. Using vertex data (instead of texture data) is extremely efficient and ideal for mobile platform development. Given Blender's current vertex painting tools, I am only able to easily store/edit 1 data set (across all channels) where there is potential for up to 4 sets (r, g, b, & a). Adding this feature would be an extremely powerful improvement to my workflow, and to other artists who use non-standard asset pipelines.

Thanks for the consideration!

100%

Development Status: Open

Upvote 15 Downvote 0
ZappForThat
11 Jun 2018

5 Comments

zuorion

I'll just leave it there:

blenderartists.org/t/addon-vertex-color-master/697617 or dropbox.com/s/j9lk1vd1eo0zsnn/VertexColorToolkit.py

But yea, channel separation could be build in option.

1
Nikita-47

thank you!!!

greenAnka

I second that. This is indeed a very handy feature in the game dev. The current workaround with the shaders and geo nodes is cranky and time-consuming to set up.

Erric

Vertex color master plugin mentioned below suddenly started working on 3.4 but again stopped on Blender 4. Painting in VC channels is super important for gamedev and VFX. Add/Subtract workaround works only for painting but there is no way how to "fill" a channel with particular value.

There is another workaround to set up geometry nodes structure combining various Attributes into one, but taht's super convoluted.

The simplest way for the "fill" problem would probably be adding RGBA channel checkboxes to the Set vertex color feature/command.

tanagashi

I'm not surprised that there has been basically no development in regards to VC in Blender since this post was made. Anything remotely out of the beaten path is dismissed with questions like "why would you want that" by the devs.

I'm in the same spot as OP now, with a need to store a bunch of different data separately in VC channels. Been banging my head against the wall for a couple of weeks now. Vertex Color Master addon has an option to isolate a single channel and assign a value to it, but whatever workaround it uses is broken in versions above 3.1. But there's no way to use either the addon nor native functionality to bake AO or shading in a single channel. In theory you could use VCM and data transfer to bake AO on a copy of the mesh and then transfer the data to a specific channel of the original, but alas, I couldn't succeed in doing that.

And there's no native way to edit VCs of multiple objects at once either, I think there was an addon for that though. Or if you're happy with applying a value to all channels, then it's possible with a script that goes through the selection and assigns what you want.