> Hello there,
> Currently I am porting some Viewing application from Performer to TGS
> Open Inventor 4.0 ...
> I'd like to have more than one View on the scene at once. S.th. quite
> like the (in)famous 4View.cxx example of OpenInventor.
> Now, the question arises, whether this is the optimal solution with
> respect to performance.
> We are rendering a dynamically changing scene for a robotics
> application, and would like to simulate more than one camera view, where
> some cameras are mounted on the robot.
> From my experiences with Performer, one has to make shure, that the
> display context/ OpenGL Widget is shared somehow, so that the graphics
> pipe is not unloaded.
> What is the "best" solution with respect to performance.
> In an early state, I just opened a second SoXtViewer window, which
> dropped the performance dramatically.
Just to confirm, you have multiple views of the same scene, so the
goal is to have a single set of render caches (display lists) for
the scene that are shared by all views. Right? On what platform
and what graphics board?
Generally the automatic display list sharing mechanism in OIV will
share display lists between all windows created on the same display.
So the first step would be to determine if the performance drop is
caused by having a second window or simply by rendering the scene
twice. In other words, if a single rendering of the scene is close
to the capacity of the system, then rendering it twice for each
frame will give approximately half the frame rate. If this is the
case and the various views typically do not include everything in
the scene then you might want to try using an SoOctreeOrdering node
to do view culling (reducing the geometry rendered in each view).
TGS Inc, http://www.tgs.com