[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