我要发帖 回复

正式会员

4

主题

38

积分

0

专家分

:

私信
发表时间 : 2008-7-18 01:05:45 | 浏览 : 1552    评论 : 5
我的想法是这样:
用如下线程函数来渲染
static UINT runVegaApps(LPVOID pParam)
{
        CIRSceneView * pOwner=(CIRSceneView *)pParam;

        vgInitWinSys(AfxGetInstanceHandle(),pOwner->GetSafeHwnd());

        /* 初始化 SensorVision */
        vgInitSV();
        /* 初始化 SensorWorks */
        vgInitSW();

        pOwner->setVegaInitted(true);
        pOwner->postInit();

        vgDefineSys(pOwner->getAdfName());
        pOwner->setVegaDefined(true);
        pOwner->postDefine();

        vgConfigSys();
        pOwner->setVegaConfiged(true);
        pOwner->postConfig();

        while (pOwner->getContinueRunning())
        {
                vgSyncFrame();
                pOwner->postSync();
                vgFrame();
                pOwner->postFrame();
        }
        pOwner->setVegaInitted(false);
        vgSyncFrame();
        return 0;
}
    在View类中通过控制getContinueRunning()的返回值ContinueRunning来控制线程运行,从场景A切换到场景B时,将ContinueRunning设为false,于是线程函数返回,重新定义ADF文件的路径,然后再重开线程运行该线程函数进行场景渲染。但是一重开线程就出错,十分着急,望各位大侠指教……

最近VR访客

carrionsong 评论于2008-7-28 22:16:15
无人回复……
xulide 评论于2008-7-30 15:34:38
我也想知道
mythhu 评论于2008-8-4 20:33:42

回复 1# 的帖子

你看看 86VR精华,上面有总结的,vega不支持多线程,实现场景切换可以用多进程和同时将多个场景添加到一个ADF文件中,然后切换时进行场景的关闭、显示操作。
henry0henry 评论于2008-9-9 14:58:28
原帖由 mythhu 于 2008-8-4 08:33 PM 发表
你看看 86VR精华,上面有总结的,vega不支持多线程,实现场景切换可以用多进程和同时将多个场景添加到一个ADF文件中,然后切换时进行场景的关闭、显示操作。

支持,我用的后者
ggw0122 评论于2011-4-14 22:16:03
谢谢分享

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-6-24 02:16 AM

返回顶部