[osg-users] How to reduce the cache size limit of OSG ?

OpenSceneGraph Users osg-users at lists.openscenegraph.org
Tue May 26 11:37:27 PDT 2020


Hi Hui,


On Tuesday, 26 May 2020 10:36:18 UTC+1, Hui Li wrote:
>
>
> The codes looks like this: 
> ```
> root = GroupOfSwitch(); 
> viewer->setSceneData(root);
> while (!viewer->done()) {
>     root->removeChild(0); // Remove the point cloud 
>     pc = sensor.Capture();  // Get the point cloud
>     geo = CreateGeometryNode(pc);
>     root->addChild(geo); // Add the pointcloud 
>     viewer->frame();
> }
>
>
In "principle" this shouldn't cause unbounded memory growth but as you 
don't provide any details about the CreateGeometryNode() there is no way 
for use know what is going on there.  It could be that your leak it right 
there in that function call, or else where somewhere in your application.

While I can't comment about the details of your implementation the approach 
of removing, creating and adding new nodes and associated data each frame 
is really, really inefficient.

As much as possible you should try to reuse data.  For a point cloud 
application where the data is dynamic I would personally allocate a fixed 
number of Geometry nodes with fixed Vec3Array's within them and single 
DrawArray primitive set.  I'd allocate the Vec3Array to it's full size 
right up front and next change it's size.  The DrawArrays has a count value 
that you can set to specify how many vertices in the array need to be 
rendered and needn't be the whole length of the Vec3Aray.

With really large datasets I would chunk the data so rather one big 
osg::Geometry, I'd have say 10,000 vertices in each osg::Geometry.  I would 
also use VertexBufferObjects and avoid using DisplayLists.

Do this all correctly and you should get a good performance and no memory 
growth.

Robert.
 

-- 
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osg-users+unsubscribe at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/osg-users/1d7f0fab-ad05-4c49-a37e-b09f6179dd0d%40googlegroups.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20200526/523ec990/attachment.html>


More information about the osg-users mailing list