OSG学习:位置变换节点示例

来源:互联网 发布:如何筛选excel相同数据 编辑:程序博客网 时间:2024/04/28 08:50

 osg::PositionAttitudeTransform节点。


#include <osgViewer\Viewer>#include <osg\Node>#include <osg\Geode>#include <osg\Group>#include <osg\PositionAttitudeTransform>#include <osgDB\ReadFile>#include <osgDB\WriteFile>#include <osgUtil\Optimizer>int main(){//创建Viewer对象,场景浏览器osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();//创建场景组节点osg::ref_ptr<osg::Group> root = new osg::Group();//创建一个节点,读取牛的模型osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("cow.osg");//创建位置变换节点pat1osg::ref_ptr<osg::PositionAttitudeTransform> pat1 = new osg::PositionAttitudeTransform();//设置位置为osg::Vec3(-10.0f,0.0f,0.0f)pat1->setPosition(osg::Vec3(-10.0f, 0.0f, 0.0f));//设置缩放,在X,Y,Z方向都缩小一倍pat1->setScale(osg::Vec3(0.5f, 0.5f, 0.5f));//添加子节点pat1->addChild(node.get());//创建位置变换节点pat2osg::ref_ptr<osg::PositionAttitudeTransform> pat2 = new osg::PositionAttitudeTransform();//设置位置为osg::Vec3(-10.0f,0.0f,0.0f)pat2->setPosition(osg::Vec3(10.0f, 0.0f, 0.0f));//添加子节点pat2->addChild(node.get());//添加到场景root->addChild(pat1.get());root->addChild(pat2.get());//优化场景数据osgUtil::Optimizer optimizer;optimizer.optimize(root.get());//设置场景数据viewer->setSceneData(root.get());//初始化并创建窗口viewer->realize();//开始渲染viewer->run();return 0;}


结果视图



原创粉丝点击