Hi Erlend, I think you should call dirtyBound() AND dirtyDisplayList() on the drawable containing the geometry you edited.
Hope that will help you, Frédéric. [EMAIL PROTECTED] a écrit : > I though dirty() called dirtyBound().. Anyway, tried it still have problem, > with billboards popping in and out of view when im moving around.. :/ > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Art Tevs > Sent: 23. april 2008 18:09 > To: OpenSceneGraph Users > Subject: Re: [osg-users] updating geometry and textures > > Hi, > > I think if you change your geometry on the fly, you > have to call dirtyBound() of course. Otherwise the old > bound can be used during the cull traversal and your > node maybe culled. > > cheers, > Art > > --- [EMAIL PROTECTED] schrieb: > > >> it seems now that the objects only dissapear at >> certain camera position's. could there be an error >> with the culling using SceneView? >> >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] >> On Behalf Of [EMAIL PROTECTED] >> Sent: 23. april 2008 17:30 >> To: [email protected] >> Subject: [osg-users] updating geometry and textures >> >> I have a 'container' class A which inherit from >> Group, which has several nodes, drawables etc. I >> also have a controller class B that calls some >> update methods on A to update the geometry of some >> of A's member ( B has a pointer to A objects.. is >> that 'allowed'?). I am wondering if im doing the >> update correctly.. I render stuff but then suddenly >> everything dissapear.. Im pretty sure it's not the >> osg, but If you could see if im doing the updates >> correct i would appreciate it very much, since i >> didnt find any info on this. >> >> The geometry in A is in a Vec3Array vertices, which >> is cleared and given new data for each time updated. >> Afterwards i use "DrawArrays->set()" to sett >> correct primitive set and size. At the end I call >> vertices->dirty(). >> >> Bwt. I do not explisitly need to call dirtyBound() >> do i? >> >> I also have a class B same as A but which creates a >> billboard texture and so on, and i am frequently >> updating the image data. I've set both the image and >> texture's setDataVariance to DYNAMIC and in the to >> update the image i call: >> >> _image->setImage(_width, _height, 1, GL_RGBA, >> GL_RGBA, GL_UNSIGNED_BYTE, pixels, >> osg::Image::USE_NEW_DELETE); >> >> And also, when i create a texture from a image, is >> the texture allways created as a power-of-two >> texture? scaling the texcoords? >> >> Thanks in advance! >> >> Erlend >> >> >> >>> void Render() >>> >> { >> // save matrices >> glPushAttrib(GL_ALL_ATTRIB_BITS ); >> glMatrixMode(GL_PROJECTION); >> glPushMatrix(); >> glMatrixMode(GL_TEXTURE); >> glPushMatrix(); >> glMatrixMode(GL_MODELVIEW); >> glPushMatrix(); >> >> // set correct view >> glLoadIdentity(); >> _renderer->rotate_eyepos(); >> _renderer->translate_sub_eyepos(); >> >> // set osg view >> GLint viewParams[4]; >> glGetIntegerv( GL_VIEWPORT, viewParams ); >> _sceneViewer->setViewport(viewParams[0], >> viewParams[1], viewParams[2], viewParams[3]); >> GLfloat glMat[16]; >> glGetFloatv( GL_PROJECTION_MATRIX, glMat ); >> >> >> > _sceneViewer->setProjectionMatrix(osg::Matrix(glMat)); > >> glGetFloatv( GL_MODELVIEW_MATRIX, glMat ); >> _sceneViewer->setViewMatrix(osg::Matrix(glMat)); >> >> // update timestamp >> double time_since_start = _timer.delta_s( >> _start_tick, _timer.tick() ); >> _frameStamp->setReferenceTime( time_since_start ); >> _frameStamp->setFrameNumber( _frameNumber++ ); >> _sceneViewer->setFrameStamp( _frameStamp.get() ); >> >> // render >> _sceneViewer->update(); >> _sceneViewer->cull(); >> _sceneViewer->draw(); >> >> // reset matrices >> glMatrixMode(GL_TEXTURE); >> glPopMatrix(); >> glMatrixMode(GL_PROJECTION); >> glPopMatrix(); >> glMatrixMode(GL_MODELVIEW); >> glPopMatrix(); >> glPopAttrib(); >> }> _______________________________________________ >> osg-users mailing list >> [email protected] >> >> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > __________________________________________________________ > Gesendet von Yahoo! Mail. > Mehr Möglichkeiten, in Kontakt zu bleiben. http://de.overview.mail.yahoo.com > _______________________________________________ > 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 > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

