|
以osg程序设计教程里的例子为例
void main()
{
osgViewer::Viewer viewer;
osg::ref_ptr <osg::Group> root = new osg::Group() ;
osg::ref_ptr<osg::Node> osgcool = osgDB::readNodeFile("osgcool.osg") ;
osg::ref_ptr<osg::MatrixTransform> trans = new osg::MatrixTransform ;
trans ->setMatrix(osg::Matrix::translate(0, 0, 2)) ;
trans ->addChild(osgcool.get()) ;
//osg::ref_ptr<osg::MatrixTransform> scale = new osg::MatrixTransform ;
//scale ->setMatrix(osg::Matrix::scale(0.5, 0.5, 0.5)*osg::Matrix::translate(0, 0, -2)) ;
//scale ->addChild(osgcool.get()) ;
//osg::ref_ptr<osg::MatrixTransform> rot = new osg::MatrixTransform ;
//rot ->setMatrix(osg::Matrix::rotate(osg:egreesToRadians(45.0), 1, 0, 0)*osg::Matrix::scale(0.5, 0.5, 0.5)*osg::Matrix::translate(4, 0, -2)) ;
//rot ->addChild(osgcool.get()) ;
root ->addChild(osgcool.get()) ;
root ->addChild(trans.get()) ;
//root ->addChild(scale.get()) ;
//root ->addChild(rot.get()) ;
viewer.setSceneData(root.get());
viewer.realize();
viewer.run();
}
为什么上面的这些操作,我加入.osg文件时都是可以实现的,但是如果加入一个。earth,readNodeFile("*.earth")时
只能看到地球,而看不到其他东西?
而且其中的移动,缩放等对于地球也没起作用?
另外我想在窗口里面只显示地球的某一部分,应该怎么实现?
|
-
|