查看: 1466|回复: 5

mfc中渲染多场景的疑问

[复制链接]

该用户从未签到

发表于 2009-8-24 16:32:41 | 显示全部楼层 |阅读模式
利用osg例子中提供的方法在mfc的单文档下渲染了一个场景,场景的组织结构是一个复合视图关联了两个子视图,一个视图关联了一个camera,每个相机关联了一个图形上下文,可是mfc只能创建一个图形上下文,或者一个图形上下文只能关联到一个相机上,否则就会出错 ,不知道是什么原因,望得到指教,谢谢!
// 创建图形上下文特征对象
    osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;
    // Init the Windata Variable that holds the handle for the Window to display OSG in.
    osg::ref_ptr<osg::Referenced> windata = new osgViewer::GraphicsWindowWin32::WindowData(m_hWnd);
    // 设置图形上下文特征
    traits->x = 0;
    traits->y = 0;
    traits->width = rect.right - rect.left;
    traits->height = rect.bottom - rect.top;
    traits->windowDecoration = false;
    traits->doubleBuffer = true;
    traits->sharedContext = 0;
    traits->setInheritedWindowPixelFormat = true;
    traits->inheritedWindowData = windata;
    // 创建图形上下文
    osg::GraphicsContext* earthgc = osg::GraphicsContext::createGraphicsContext(traits.get());
    // Init a new Camera (Master for this View)
        osg::ref_ptr<osg::Camera> earthcamera = m_earthViewer->getCamera();
earthcamera->setGraphicsContext(earthgc); //设置和下面的相机设置冲突,不知道是什么原因,望指教
/**************************************************************************/
osg::ref_ptr<osg::Camera> communitycamera = m_communityViewer->getCamera();

        //设置背景色为黑色
        communitycamera->setClearColor(osg::Vec4f(0.5,0.5,0.0,1.0));       
        // Assign Graphics Context to the Camera
        communitycamera->setGraphicsContext(earthgc);设置和上面的相机设置冲突,不知道是什么原因,望指教

该用户从未签到

发表于 2009-8-24 16:38:41 | 显示全部楼层
不应当有这个问题,和MFC也没有直接关系;不知您的错误产生时机和提示是什么

该用户从未签到

 楼主| 发表于 2009-8-24 17:30:39 | 显示全部楼层
提示很模糊 感觉是少点什么东西  具体的还没有找到
osg.jpg

该用户从未签到

发表于 2009-8-24 20:19:19 | 显示全部楼层
调试一下看看吧

该用户从未签到

 楼主| 发表于 2009-8-25 10:39:38 | 显示全部楼层
本帖最后由 zhufu0208 于 2009-8-25 10:47 编辑

array 是不是线程的原因,在mfc下渲染osg是开了一个线程渲染的,是不是一个线程里面只能有一个gc啊
程序时在mfc的单文档下编写的

该用户从未签到

发表于 2009-8-25 12:23:24 | 显示全部楼层
osg本身没有这样的限制,您可以在调试模式下查看堆栈的信息
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表