Hi Brad,

Load balancing is as much a database creation issue as it is a runtime
issue so you may need to look at your database itself.  Compressed
textures are one area that you can help keep memory requirements
smaller.  Use of osgTerrain::TerrainTile based database can also help
as you can dynamically change the Terrain::SampleRatio to keep down
the memory/rendering load for lower end systems.

At runtime use of viewer's Camera::setLODScale() can be very
effective, it's something you can alter per frame so when the scene is
looking out over the horizon where lots of tiles are required you can
change the scale to keep the load better balanced.

On the DatabasePager front, the svn trunk version has a new scheme for
trimming the number of inactive PagedLOD back to achieve a target
maximum number of PagedLOD.  You can use the OSG_MAX_PAGEDLOD env var
to set this value.   Right now this mode isn't the default setting,
but my plan is to use this scheme by default and deprecate the expiry
delay/frame delay based scheme as these aren't so good at keep to a
max limit in memory.

Finally your hardware/OS/OpenGL drivers can have a huge effect on how
well it copes with larger scenes.  In testing of large paged database
Ive found linux to scale much better than vista, even when vista has
much more the memory it grinds to a halt/crashes while the linux
system just chungs along without dropping a frame.

Robert.

On Tue, Nov 25, 2008 at 10:19 PM, Brad Colbert <[EMAIL PROTECTED]> wrote:
> Hi Folks,
>
> We have an .ive PagedLOD database that is high resolution in both
> textures and poly's.  Understandably in certain situations we are able
> to clobber both the memory on the machine and GPU memory when the pager
> tries to page in more data then is possible to hold.  The result is that
> the database pager thread dies and does not deallocate the memory it was
> holding onto.
>
> We have played with a couple settings such as:
>
> * Hoping this forces immediate deletion.
>    databasePager->setExpiryDelay( 0.0 );
>
> * Not sure if this helps.
>    databasePager->setDoPreCompile( true );
>
> And we have played with the LOD scale but we still have some issues.
>
> Is it possible to detect the death of the paging thread, and if so, can
> we flush the nodes it was holding onto and restart it?
>
> Any other ideas would be greatly appreciated.
>
> -Brad
>
> ---
> Brad Colbert
> Renaissance Sciences Corporation
> W: 480 374-5073 x:5073
> F: 425 675-8044
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to