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

Reply via email to