我要发帖 回复

乞丐

5

主题

-1

积分

0

专家分

:

私信
发表时间 : 2007-9-21 14:48:28 | 浏览 : 1502    评论 : 3
以下是我写的一段代码,目标是模拟一个obs在一辆车中的视角,并随着车漫游,分为三个部分:第一个部分新建一个obj并载入一个车的模型;第二部分把车的obj加到一个plyr上;第三部分把plyr加到一个obs上,但是仍然看不到车,并且把第三段的代码加入后甚至老出现错误,不知道哪里错了,希望大家帮忙改一下.


void main()
{
         vgWindow *win;
        vgObserver *normal_obs;
        vgObserver *rearview_obs;
        vgChannel *rearview_chan;
        vgGfx *rearview_gfx;
        vgPosition *pos;
        vgMatStack *matStack;
        vgMat mat;
        vgDataSet *ds;
        vgObject *obj;
         vgScene *scene;
         vgPlayer *plyr;

        vgInitSys();
        //vgFilePath ("D:\Program Files\Paradigm\Vega\Sample\Data\Vega");
        vgDefineSys("mytown.adf");
        vgConfigSys();

    //  添加car模型对象
        ds=vgNewDS();
        vgName(ds,"esprit.flt");
        vgLoadDS(ds);
        obj=vgNewObj();
        vgName(obj,"car");
        vgProp(obj,VGOBJ_CS,VGOBJ_DYNAMIC);
        vgProp(obj,VGOBJ_SCALE,2);
        pos=vgNewPos();
        vgPosVec(pos,0.5,1.0,0.0,90.0,0.0,0.0);
        vgPos(obj,pos);
        vgDelPos(pos);
        vgObjDS(obj,ds);
        scene=vgGetScene(0);
        vgAddSceneObj(scene,obj);

       

    //绑定obj和plyr
        /* create a new player */
        plyr = vgNewPlyr();
        vgName( plyr, "player_car" );
        /* enable the player */
        vgProp( plyr, VGCOMMON_ENABLED, VG_ON );
        /* set the player type to ground */
        vgProp( plyr, VGPLYR_TYPE, VG_GROUND );
        /* attach the object */
        vgAddPlyrObj( plyr, obj );
        /* position the player */
        pos = vgNewPos();
        vgPosVec( pos, 1000.0f, 1000.0f, 100.0f, 90.0f, 0.0f, 0.0f );
        vgPos( plyr, pos );

        //  绑定obs和plyr
        vgProp( normal_obs, VGCOMMON_ENABLED, VG_ON );
        // Set The Observer Fixed Tethered state
        vgProp( normal_obs, VGOBS_TETHERSTATE, VGOBS_FIXED );
        // The Observer needs to be relative to a players coords
        vgProp( normal_obs, VGOBS_TETHERCOORD, VGOBS_TPLAYER );
        // We need the player for the navigator assume first player
        plyr = vgGetPlyr( 0 );
        // Associate the Player with the Observer
        vgObservPlyr( normal_obs, plyr );

        while(1)
        {
            vgSyncFrame();
                vgFrame();
        }
}

最近VR访客

obuil 评论于2007-9-24 22:36:11
初看起来没什么错误,你最好先把错误之处找出来
然后大家可以一起帮忙改正 让大家找 不是太好 大家没有那么多时间
lihaojie 评论于2007-9-24 23:40:29
我每次链接的时候就弹出来一个出错的对话框,然后就挂掉了,我就是不知道哪里错了。。。555
obuil 评论于2007-9-25 14:58:40
那我知道了,你应该先做错误检查

看各个类实例都是否成功建立起来了

动态生成的obj就有可能没有建立起来

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

GMT+8, 2021-10-26 01:28 AM

返回顶部