← All ideas
  • Published 16 May 2018

Weight paint mode: per-pixel color gradients and new color ranges

The weight paint mode currently uses linear vertex color interpolation to visualize the weights of the active vertex group. However, this results in bad looking gradients between neighboring vertices with large weight differences. It would be better to use pixel shading or gradient texture mapping to more accurately visualize the vertex weight gradients, especially on low-poly models.

Also I'd recommend adopting Matplotlib's Viridis and Plasma color maps as built-in weight paint ranges, on top of Blender's classic rainbow range. They are carefully designed to be perceptually uniform, resulting in a very smooth visualization of scalar data, and they are much more friendly to people with a color vision deficiency. Perhaps we can even go as far as picking one of them as Blender's new default setting. The option to add your own color range should of course remain.

The way I see it, in User Preferences > System, the checkbox Custom Weight Paint Range could be replaced with a drop-down list, giving the options:

  • Rainbow (classic)
  • Viridis
  • Plasma
  • Custom...

Model source: Stanford Computer Graphics Laboratory

Vertex group coloring v2.png

100%

Development Status: Open

Upvote 11 Downvote 0
wesvdes
16 May 2018

2 Comments

RNavega

Hi. The Inferno colourmap has the lowest point as what seems like black, and this would conflict with the very useful Show Zero Weights option, which shows vertices that don't belong to the active group as pure black. Either the zero-weights colour should be made changeable, or the lowest point of the Inferno colourmap should be set to something like that dark purple so you can still differentiate it from the zero-weight black vertices.

1
wesvdes Author

@R. Navega: That's a very good point. Matplotlib has a slight variant of Inferno called Plasma, which looks almost identical, but ends in a dark blue instead of black. I guess that would be the better option then.

EDIT: Updated post to show Plasma instead of Inferno.

2