I’m talking under your control Andras :
vtkMapper, when applying colors, chooses between “texture mapping” and “vertex color”.
- The 1rst mode is applying a whole texture above the entire polydata.
- The 2nd mode uses graphical subsystem to apply colors (e.g. glColor()).
When the 2nd mode is used, the pipeline must do 2 passes to render opaque, then translucent geometry.
But, here is what you can find in vtkMapper.cxx line 693 :
bool vtkMapper::HasOpaqueGeometry()
{
// by default we only return true for Opaque or Translucent
// not both.
return !this->HasTranslucentPolygonalGeometry();
}
So, except from deriving the vtkMapper class to tweak it, my understanding is that the default vtkMapper cannot render both opaque & translucent geometry when “vertex color” is used.
In your cases, the result is indeed correct because it uses “texture mapping”.
But in my cases, when using a RGBA cell data field to pass colors to the mapper, vtkMapper chooses explicitly “vertex color” (vtkMapper.cxx line 380+), and opacity mixing is thus forbidden.