Thanks Robert, I still feel strange because I created HUD only once and no deletion at all. Also I did not load any data into my scene. The only thing needs to be draw is the HUD. I wonder where is deleted GL objects at all. I have tried to disable HUD and loaded some data into my scene. Everything was fine without the HUD.

I have been really tired with this HUD thing. In OSG 1.0, I need to set DO_NOT_COMPUTE_NEAR_FAR for the HUD's camera node. Now in OSG 1.1, I need to disable displaylist when drawing a transparent box in HUD. What's going to happen in next version of OSG?:(

In the attachment you will find related source code files. I wish you have time to have a look. In the package, CygnetVS.cpp is the main entry point. CAuxFoxGLwindow.cpp is where I integrated OSG sceneview with Fox tool kit. CAuxSceneView.cpp is my customed sceneView class. CAuxHUDNode.cpp is where I created HUD.

Thanks a lot anyway.
Yanling


On 7/21/06, Robert Osfield <[EMAIL PROTECTED]> wrote:
Hi Yanling,

There won't be a problem with CameraNode's and display lists, the two
are totally orthogonal.

Do you have a custom viewer?  If so are flushing delete OpenGL objects
on each frame?  If not then you need to call :

   sceneView->flushDeletedGLObjects(double& availableTime);

Where availableTime is a double set to how much time you want to give
over to flushing deleted OpenGL obejcts.

Robert.

On 7/20/06, Yanling Liu < [EMAIL PROTECTED]> wrote:
> Hi, my HUD was find with OSG 1.0 except have to set DO_NOT_COMPUTE_FAR_NEAR.
> After switch to OSG 1.1, my HUD becomes a black screen and there is huge
> memory consumption (eat 40MB approximately every one second and keep
> eating).
>
> Here is my code:
>
> In SceneView I attached a CameraNode:
>
> //create hud
>     m_hudNode = new CCAuxHUDNode; //extend CameraNode and put HUD stuff
> inside the node
>     m_hudNode->CreateHUD(m_viewWidth, m_viewHeight);
>
>     m_hudNode->setProjectionMatrix(osg::Matrix::ortho2D(0,
> m_viewWidth, 0, m_viewHeight));
>
> m_hudNode->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
>     m_hudNode->setViewMatrix(osg::Matrix::identity());
>
>     m_hudNode->setClearMask(GL_DEPTH_BUFFER_BIT);
>
> m_hudNode->setRenderOrder(osg::CameraNode::POST_RENDER);
>
>     m_root->addChild(m_hudNode.get());
>
> In CCAuxHUDNode::CreateHUD(), I created a console and attached a transparent
> quad to it:
>
> osg::BoundingBox bb;
>     bb.set(40.0f , 42.0f, 0.0f, width - 40.0f, height - 42, 0.0f);
>
>     osg::Vec3Array* vertices = new osg::Vec3Array;
>     float depth = -0.1f;
>     vertices->push_back(osg::Vec3( bb.xMin(),bb.yMax(),depth));
>     vertices->push_back(osg::Vec3(bb.xMin(),bb.yMin(),depth));
>     vertices->push_back(osg::Vec3(bb.xMax(),bb.yMin(),depth));
>     vertices->push_back(osg::Vec3(bb.xMax(),bb.yMax (),depth));
>     m_consoleGeom->setVertexArray(vertices);
>
>     osg::Vec3Array* normals = new osg::Vec3Array;
>     normals->push_back(osg::Vec3(0.0f, 0.0f, 1.0f));
>     m_consoleGeom->setNormalArray(normals);
>
> m_consoleGeom->setNormalBinding(osg::Geometry::BIND_OVERALL);
>
>     osg::Vec4Array* colors = new osg::Vec4Array;
>     colors->push_back(osg::Vec4(0.1f, 0.1f, 0.2f, 0.5f));
>     m_consoleGeom->setColorArray(colors);
>
> m_consoleGeom->setColorBinding(osg::Geometry::BIND_OVERALL);
>
>     m_consoleGeom->addPrimitiveSet(new
> osg::DrawArrays(GL_QUADS,0,4));
>     m_consoleGeom->setUseDisplayList(false);
>
>     m_consoleNode->addDrawable(m_consoleText.get());
>     m_consoleNode->addDrawable(m_consoleGeom.get());
>
>     addChild(m_consoleNode.get());
>
> As you can see, my code is nothing strange and every similiar with osgHud
> example about the transparent quad.  Also you can see there is one line in
> my code:
> m_consoleGeom->setUseDisplayList(false);
>
> When the line is there, my HUD works fine, no problem at all. But if I
> comment this code, which means to use displaylist, then there is huge memory
> consumption every second and keep going. I wonder if there is some bugs in
> CameraNode about generating displaylist.
>
> I also attached screen shot for my program and task manager. You could see
> the memory consumption goes up very quickly.
>
> Yanling
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
>
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to