How to draw 10000+ object?

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.