Hi,
I just tried to replace SceneView with osgViewer::Viewer to take
advantage of threading.  My scene has 3 views of the same scene with
cameras set up like this:

                     Viewer camera
        /                           |                             \
far_cam1                far_cam2                     far_cam3
        |                           |                               |
near_cam1              near_cam2                  near_cam3
(POST_RENDER)  (POST_RENDER)    (POST_RENDER)
         \                          |                              /
                              scene

The viewer camera is only used for clearing.  The "near" and "far"
cameras are used to render different depth ranges of my scene to
prevent a lot of z-fighting; each pair of near/far cameras draws into
the same viewport.

With no threading, I use 1 core at 100%.  With
CullThreadPerCameraDrawThreadPerContext I use 1 core at 100% and
another core at about 25%.  There are still 2 cores that are nearly
unused.  The other threading modes do not appear to help.

I tried to trace through the threading code in ViewerBase a little.
In "cameras" (the vector of osg::Cameras) there is only 1 camera, but
I expected to find 7.  Is it impossible to have 7 cull threads in this
situation, or am I just setting something up wrong?
- Terry
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to