This allows for more flexibility painting the same mesh different ways - which is important because the old 'EntityColor/EntityTexture' stuff *will not* be happening. This basically involved 'blending' multiple brushes, but was very clumsy internally, introduced a nasty rendering bottleneck and would be practically unworkable in a multi-shader environment.
I'm not sure I understand what's different here. Didn't EntityTexture just go through each surface that was a child of the mesh/pivot and set the texture? I haven't used Blitz3D in so long I've forgotten.
Are you saying it was possible to set a surface texture AND an entity texture, and have the two blend together? So basically for each surface you had to have a second copy to take on the entity texture?
Or are you saying that being able to set a seperate entity color and entity texture, and blend that texture with the underlying color were what caused the need for such duplicate surfaces? That need doesn't extend to vertex colors, does it? So if that is the case, why not just have an entitycolor command set all the vertex colors instead of doing some kind of funky blending? Did you do some kind of trick to make setting colors faster thinking it was a feature which would be used a lot and needed to be faster than setting all the vertices?
I wish I knew more about the internal workings of 3D cards so I'd be able to figure out what you were doing here, but I guess that knowledge would be pretty worthless now what with everything having changed completely with the advent of shaders. Then again, almost everything I ever knew about programming has become outdated at some point. :-)