Hi Matthieu, SingleThreaded is not necessarily more "safe" than multi-threaded, both are perfectly safe if you don't abuse the constraints relating to threading model you are using. SingleThreaded has the fewest constraints so you can often get away with usage models that really aren't good practice. There has been a lot written on threading on the osg-users mailing list so please go search the archives.
Robert. On Tue, Sep 30, 2008 at 4:17 PM, Matthieu DIRRENBERGER <[EMAIL PROTECTED]> wrote: > Hi Wojtek, > > > > Thanks a lot, it's work ;-) > > It was that, one thread more safe, than multi-thread to takes shots frame > per frame… > > That little point should be explain in the user documentation, but it is a > known problem in graphic programming. > > I just forgot that… > > > > Cheers, > > > > Matthieu > > > > > > De : [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] De la part de Wojciech > Lewandowski > Envoyé : mardi 30 septembre 2008 16:27 > À : OpenSceneGraph Users > Objet : Re: [osg-users] frame control and callback > > > > Hi Matthieu, > > > > Try using --SingleThreded mode with your viewer. I once tried to do similar > thing. Although in my case I was dumping color buffer.But very often I was > reading wrong portion of the whole range. It turned out that default > multithreading of OSG was runnig two frames concurently and one snapshot was > overrriding the other. > > > > Attached you will find an code excerpt from my app. It was used to dump > pseudo aerial photographs for some airport objects. We used these images > later for paged terrain. > > > > Code may not compile because I removed few specific parts. But main > rendering loops are untouched you may use them as template for your code. > > > > Cheers, > > Wojtek > > > > . > > ----- Original Message ----- > > From: Matthieu DIRRENBERGER > > To: [email protected] > > Sent: Tuesday, September 30, 2008 3:57 PM > > Subject: [osg-users] frame control and callback > > > > Hello OSG users, > > > > I am a new on OSG and I have some difficulties to finish an application. > > I am trying to do an application which computes pre-calculated height-maps > from a scene. > > Simply, I make a "draughtboard" from the scene; and a camera takes shots > from Z-buffer for each square looking downward. > > I have done a callback function to get z-buffer and convert it to my > convenience, but I can't control the execution of that callback function… > > > > struct MyCameraPostDrawCallback : public osg::Camera::DrawCallback > > { > > MyCameraPostDrawCallback(osg::Image* image, osg::Image* cimage, > osg::Texture2D* t): _image(image), _cimage(cimage), _cTex(t) > > { > > } > > virtual void operator () (const osg::Camera& /*camera*/) const > > { > > …code… > > > > I use this function to init the callback in the camera settings: > camera->setPostDrawCallback(new MyCameraPostDrawCallback(test.get(), > zImage.get(), tex.get())); > > > > After that, I use loops to modify camera positions and take my shots (I make > a code based on the example from OSG user guide using viewer->frame(). > > > > for(x=0;x<nb_x;x++) > > { > > yd=-TEXT_SIZE/2; > > yf = yd+TEXT_SIZE; > > > > for(y=0;y<nb_y;y++) > > { > > > camera->setClearColor(osg::Vec4(0.1f,0.3f,0.3f,1.0f));//init buffer de > couleur > > camera->setClearMask(GL_COLOR_BUFFER_BIT | > GL_DEPTH_BUFFER_BIT);//init Z-buffer > > > camera->setProjectionMatrixAsOrtho(xd,xf,yd,yf,0.1,TEXT_SIZE); > > > > viewer->frame(); > > > > if(y<nb_y) > > { > > yd=yf; > > yf=yf+TEXT_SIZE; > > } > > } > > if(x<nb_x) > > { > > xd=xf; > > xf=xf+TEXT_SIZE; > > } > > } > > > > The problem is to takes a shot using the callback function for each frame > with the new camera position. > > I thought that draw a frame should calls the Camera::DrawCallBack function, > but it doesn't… > > I always get the last square from the loops in my images buffer (at each > position). > > In fact the callback function is called after the loops in spite of > viewer->frame(). > > > > Can you help me? I am not sure to use the right method… > > > > Thanks > > > > Matthieu DIRRENBERGER > > ________________________________ > > _______________________________________________ > 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

