I've made some discoveries by trial and error, and I'm wondering if anyone of those familiar with Plasma internals could explain them to me (relative newbie to Plasma but with some background in computer graphics).
It took me a fair amount of head-banging until I figured out why my vertex colors weren't working the way I was used to (and wanted). What I found is that there's a difference between having only a vertex color layer (named "Col") in Blender and having two of them, the second named "Alpha" and fully white (i.e. opaque).
With an Alpha layer, the vertex colors work as expected - they are multiplied to the color after ambient and diffuse lighting (and before texturing), i.e. areas with vertex color black always appear black (in absence of specular highlights).
Without the Alpha layer, the vertex colors are visible in a certain way, but I don't understand exactly how. Areas with vertex color black appear black when facing away from light sources (ambient only), but only partially darkened when facing towards light sources. It seems like some diffuse lighting is added after multiplication by the vertex color. What is the exact formula for the shading in this case?
By prcdcing and diffing the two PRP files, I found that the difference is that with the Alpha layer, the objects are put into the plDrawableSpans named "…20000000_0BlendSpans", while without it, they are put into the one named "…00000000_0Spans". What exactly are plDrawableSpans (and BlendSpans and Icicles and whatever other critters involved in how Plasma stores and renders geometry) and why and how do they affect shading?