|
楼主 |
发表于 2009-2-20 11:52:02
|
显示全部楼层
这是我的程序的大致流程
我想绘制一个场景并对该场景进行后处理,我的流程如下图:
1. 读入模型:
osg::ref_ptr<osg::Node> scenenode = osgDB::readNodeFile("D:/osg/13.osg");
2. 创建场景的根节点root并将上述模型加为子节点:
root = new osg::Group;
root->addChild(scenenode.get());
3. 创建RTT节点并将其设为root的子节点,步骤如下:
osg::ref_ptr<osg::Group> rttgroup = new osg::Group; //创建RTT根节点
osg::ref_ptr<osg::Texture> texture = createOutputTextures(tex_width, tex_height, true); //创建RTT纹理
osg::ref_ptr<osg::Camera> camera = setupCamera(osg::Camera::FRAME_BUFFER_OBJECT, true, 0, 0, texture); //创建RTT摄像机节点,然后将RTT纹理绑定到相机
camera->addChild(scenenode);//把读入的模型设为RTT摄像机的子节点
rttgroup->addChild(camera.get()); //将RTT相机加入到RTT根节点中
root->addChild(rttgroup); //将RTT根节点加入整个场景的根节点
整个流程如上述代码所写,附场景图的结构如下 |
|