There are some development considerations to use the fast system that sculpting uses, the PBVH, to improve performance of vertex painting. However, there will a performance benefit if we assume users want to paint on vertices themselves, not on vertices per face.
So I was wondering how users use the vertex painting functionality. Is painting per face really important? Should we redesign the system to only paint on vertices instead? Should the sculpt system use per face painting too? Should we paint per vertex in sculpting and somehow flush the result to poly painting in the end?
Wouldn’t painting vertices complicate masking? One of the benefits of the current behavior is that you can use selections to allow hard-edged masking when vertex painting. Personally, I’d prefer to keep per-face painting, but I’m selfish like that.
Also, if vertex painting is changed away from per face painting, would this also apply to weight painting?
@Psy-fi: You mean the current vertex painting is per face-vertex, like normals? I never knew that, and certainly won’t miss it. Then again, vertex painting has always been so slow I almost never really used it anyway.
i remember that is also very usufull for lots of masking for cycles shaders, sss for example (how do i forget that?)
i also remember to use per face painting to do some masks doing packaging renders, its has some uses the posibility of gettint sharp vertex color paint using per face paint or some kind of masking.
Why is vertex painting limited to only 8 vertex paint layers? I wish We could work with more, since it is quite useful for vertex paint masks.
The + button duplicates a vert paint layer, rather than making a new one when you have at least one layer. This is not being communicated well to the user. Its not communicated at all - so I was very confused at first.
I wish vert paint payers had an alpha (I think they do in 3ds max, correct me if i’m wrong)
-if its done per vertex, would I still be able to control the transition of colors between faces- sharp to soft…
Vertex painting is indeed useful for game models and dense meshes (sculpts).
However there are some points that are needed to be considered relating to other features in blender.
Long story short a “vertex” only approach is all fine if there is mask layer and layer saving functionality.
Per face functionality can be achieved with masks.But they need to be managed and saved easily (Mask saving and management is also direly needed in sculpting).
Basic uses :
Ambient lighting or fake Ambient occlusion for low poly models (Game models).
Most games use advanced shading techniques nowadays, so vertexlit shading is not that important.However mobile games still benefit from this functionality. Also vertex color masks can be used in shaders ( realtime shaders ) for transition, blend and factor settings. It is also important to note that in these kinds of uses blender also lacks a native vertex alpha support (at least its not exposed to the user).
Sculpting can use vertex painting for texturing or cycles shading effects / masks.
This functionality is a efficient way to paint textures in subdivision sculpting since the data is embeded in to the subdivision history and is somewhat protected as long as the vertex count doesn’t change. However as most people know the multi-res modifier needs a refactor, so it might be wise to think this over.
Dynatopo might benefit from this also but tessellation will break the transition between the newly created vertices and the surrounding vertices. So this leads to more clean up work and discards the vertex paint benefit for dynatopo. (Still you don’t need to mess around with UV for dense meshes so it might benefit there).
So my thoughts is that current functionality will be limited to vertex paint masking (dirty vertex) until;
Vertex paint - Sculpt mask saving and managing functionality (Supporting mask layers in vertex paint will improve workflow greatly)
Vertex Alpha paint support is essential for shaders and game models.
Refactor for subdivision sculpting (multi-res) , dynatopo can also supported in a limited way ( warning to user on changes to topology).
Support of multires / subsurf. This is really important, else vpaint (or polypaint) is useless. It seems, to go per vertex is the almost forced decision?
BTW, zbrush can transfer (bake) polypaint to deferent topology. See decimation master addon, etc etc
edit: @Richard Marklew, you were faster.
I’d love to be able to do a good clean paint on a dyntopo sculpt without having to do any retopo or uv work. Also having the option to take that info and later baking it into a proper retopoed mesh would be incredibly useful.
You can create textures from polypaint so you can transfer the colour from one texture to another texture which use different UVs via subdivison and polypaint.
Please stay on topic. Psy-fi asked a very specific question. It would be nice if he didn’t have to sort through a bunch of feature requests and discussions about other applications to find relevant answers.
I would prefer to have both. Sometimes I prefer having painting per face loop, but other times I really want painting per vertex. For now I have been using my own scripts and tools to paint per vertex by softening the painted result across the entire vertex with various color selectors: Most colorful, brightest, darkest, closest to hue, last brush used, etc.
What I would prefer is a simple ability to change mode between per face and per vertex while painting. But whatever you do, please never change colors being stored per face loop. This is one of the ways I preserve custom normals if I need to edit a mesh. I stash them in some vertex colors and then copy them back when I am done. With multiple vertex color channels, I can store multiple revisions of the custom normals.
First of all i have to say that i like the way you interact with users (artists ) this is how all dev should do.
Psy-Fi for a humble and stupid user as i m, all you have said sounds like an alien language (good info know too ) I would like if possible to have those builds to try them out and decide. Most of the user would like something fast, paint on faces or painting on vertices,… the fastest is our choice
Being a game developer, I use vertex paint to dirty high poly meshes and bake the dirt to low poly meshes and to mask low poly meshes for textures blending in a game engine (black and white vertex paint serves as mask, usually for terrains, so that a game engine can blend two textures on in real-time).
It would be definitely cool to have high performance vertex paint to paint over dynatopo/multires mesh after sculpting, and then bake that to a low poly mesh or render it as is.
This is seriously so clever.
Other than that I don’t have much to add to the discussion, I use vertex paint layers mostly as masks for shaders, I didn’t even know they were stored per-loop.