[osg-users] Setting Camera View Matrix Not Taking Effect

OpenSceneGraph Users osg-users at lists.openscenegraph.org
Mon Apr 20 12:02:00 PDT 2020


Hello everyone,

I am trying to change the camera's perspective by calling 
setViewMatrixAsLookAt, but it is not making any change in the orientation 
of my scene. Here is the full code for the simplest application that 
reproduces my problem. There must be something I'm fundamentally 
misunderstanding here. I appreciate any and all help! Thanks in advance!

#include <osg/Geode>
#include <osg/ShapeDrawable>
#include <osgViewer/Viewer>


// Get a new sphere geode
osg::ref_ptr<osg::Geode> CreateSphereGeode(
 osg::Vec3 tCenter, // The location of the center of the sphere
 osg::Vec4 tColor, // The color of the sphere
 float fRadius // The sphere radius
 )
{
 // Create the geode to return
 osg::ref_ptr<osg::Geode> pRetv = new osg::Geode;


 // Create the sphere
 osg::ref_ptr<osg::Sphere> pSphere = new osg::Sphere(tCenter, fRadius);


 // Create the drawable
 osg::ref_ptr<osg::ShapeDrawable> pSphereDrawable = new osg::ShapeDrawable(
pSphere);


 // Set the color
 pSphereDrawable->setColor(tColor);


 // Add the drawable
 pRetv->addDrawable(pSphereDrawable);


 // Return this geode
 return pRetv;
}


// The main application entry point
int main(int argc, char *argv[])
{
 // Create the viewer
 osg::ref_ptr<osgViewer::Viewer> pViewer = new osgViewer::Viewer;
 
 // Create the top group parent
 osg::ref_ptr<osg::Group> pTopGroup = new osg::Group;


 // Create some spheres
 osg::ref_ptr<osg::Geode> pSphere1 = CreateSphereGeode(osg::Vec3(0.0f, 0.0f, 
0.0f), osg::Vec4(1.0f, 0.0f, 0.0f, 1.0f), 2.0f);
 osg::ref_ptr<osg::Geode> pSphere2 = CreateSphereGeode(osg::Vec3(10.0f, 0.0f
, 5.0f), osg::Vec4(0.0f, 0.0f, 1.0f, 1.0f), 1.0f);
 osg::ref_ptr<osg::Geode> pSphere3 = CreateSphereGeode(osg::Vec3(-15.0f, 
6.0f, 0.0f), osg::Vec4(0.0f, 1.0f, 0.0f, 1.0f), 4.0f);


 // Add these spheres to the top group node
 pTopGroup->addChild(pSphere1);
 pTopGroup->addChild(pSphere2);
 pTopGroup->addChild(pSphere3);


 // Here I am attempting to change the initial perspective, but I can make 
these numbers anything and it doesn't seem to change anything
 pViewer->getCamera()->setViewMatrixAsLookAt(
 osg::Vec3(-0.9983f, 0.0252f, -0.0530f),
 osg::Vec3(0.8639f, -2.5189f, -70.0939f),
 osg::Vec3(0.8880f, -1.5194f, -70.0726f)
 );
 
 // Add a viewport to the viewer and attach the scene graph
 pViewer->setSceneData(pTopGroup);


 // Run the viewer
 return pViewer->run();
}

-- 
You received this message because you are subscribed to the Google Groups "OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osg-users+unsubscribe at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/osg-users/2d2db453-f9e4-4e01-ab2e-76d5c00dfa6d%40googlegroups.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20200420/92ad41f6/attachment.html>


More information about the osg-users mailing list