I think I understand what he means. I'm going to throw in my 2 cents, because I'm interested in the answer to this question.
I'm going to use directions based on a line-of-sight instead of x/y/z to avoid confusing myself or others. I think what he means is this: -- assume the camera at a fixed angle (i.e. 2D view of either a 2D or 3D object) and the user can manually move the camera (via click and drag, perhaps) up/down, left/right, and in/out (this is our "zoom"). The user just cannot "turn" the camera. -- at any given camera position, I would like to know the "scale" of the "zoom". That is, how much bigger or smaller does the object appear. I'm sure at some level (OpenGL, hardware), a transform is done using some form of scaling of the original object description. That may, however, be very difficult or impossible to retrieve or use. From what I see you guys saying, he will just need to do the math on his in/out camera position. For instance, if the user is half the distance to the object, the "zoom scale" is now 2 (or 200%). Likewise, if the user has moved the camera half the original distance farther away, the "scale" should be 0.75 (75%). If the camera moves twice the original distance away, the "scale" is 0.5 (50%), meaning everything looks half as big (in theory). Is this correct? Is there no way to find the "scale" of the object compared to the original view other than do the math with the distances? Forgive me if I'm wrong about your question, Forest. That sounds like what you were asking to me, being a relative newbie to the graphics and scene graph world myself. 2008/9/18 Paul Martz <[EMAIL PROTECTED]>: > I'm not entirely sure what you mean by "scale of the scene" from your > message. To me, this is an application concept. The user sets the scale > using some user interface, and the application stores this value and > modifies the scene graph to redraw the scene at a different size. If your > application were set up this way, you would already have the scale and > wouldn't need to retrieve it from OSG. > -Paul > > > > ________________________________ > > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of forest37 > Sent: Thursday, September 18, 2008 9:22 AM > To: [email protected] > Subject: [osg-users] how to get model scale? > > > > hi all, > When the secne is zoomed in or out ,I want to get the zoom > scale.I do it like this: > osg::Camera* camera= viewer.getCamera(); > osg::Matrix vm=camera->getViewMatrix(); > osg::Vec3 scale=vm.getScale(); > > the result is that scale always equals to (1,1,1).What does this > mean and how can I get the reall scale of the scene? > > thanks > > best regards > > forest > > > > > ________________________________ > > [广告] 买房不必东奔西走,上房老大,看"二手房"网上房展会 > <http://popme.163.com/link/003984_0909_8679.html> > > > _______________________________________________ > 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

