[vtkusers] vtkScalarBarActor & Disappearing actors.

Michael Bonner bonner10 at llnl.gov
Thu Mar 13 13:35:13 EST 2003


vtk users:

I have a disappearing actor problem, and I don't think it is related to how 
vtk handles openGL display lists. Well at least I know my problem does not 
involve displaying the same objects in different windows because I am not 
doing that.

I have a single window with 3 renderers, each renderer has its own section 
of the view port. One of the renderers contains a vtkScalarBarActor, which 
of course has a lut. Another renderer contains many actors which have 
scalar point data. The actors are polyhedrons and cylinders, and they may 
be coincident, more specifically, a cylinder may be inside a polyhedron (I 
generally change the opacity of the polyhedra in order to see the 
cylinders). The scalar data can change at the users request and the next 
rendering after this shows the change.

When I set the scalar point data of the polyhedron actors or of the 
cylinder actors and re-render some of the opposite actors  just aren't 
rendered (ie if I changed the polyhedrons the cylinders are not visible). 
Their render methods are called but they do not appear in the window. The 
space that the actor occupies is re-rendered, its as if somehow vtk does 
not know that thier is an actor their. This only happens if the 
vtkScalarBarActor is visible, if the scalar bar's visibility is turned off, 
I have no problems at all. Similarly, If I place the vtkScalarBarActor in 
another window I have no problem. Additionally, It seems that the origin of 
the camera also effects the outcome. For example, If I change the 
polyhedron scalars all of the cylinders in one area disappear. If instead I 
change the origin of the camera so I can see the cylinders that disappear, 
and then change the polyhedron scalars, the cylinders (that disappeared 
before) do not disappear, but cylinders in another area may have disappeared.

I really have no idea how 2Dactors & 3Dprops are handled in the rendering 
pipeline, if they are handled differently, or really where I should begin 
to look.

I anyone has any insight into how a 2D actor could effect the rendering of 
3Dprops in the same vtkRenderWindow, or where to look  I would be estatic. 
I do know that vtk uses a "lazy evaluation scheme", but I do not know much 
about how vtk determines when something is dirty. In my case, If I my 
polyhedrons are not fully opaque (I can see the cylinders inside of them) 
and I change the polyhedrons, the cylinders should be re-rendered along 
with the polyhedrons that surround them, but this is not happening (it does 
happen when the vtkScalarBar is not visible). Likewise, if I change the 
cylinders scalar data, the blocks that surround them should be re-rendered, 
but not all of them are re-rendered.

Thanks a lot
Mike Bonner




More information about the vtkusers mailing list