我要发帖 回复

中级会员

35

主题

201

积分

0

专家分

:

私信
发表时间 : 2007-12-5 22:12:00 | 浏览 : 1238    评论 : 1
我照着书上的例子做了一个汽车的后视镜,但是发现了一个bug:当车向后开的时候,汽车player比后视的observer跑的快,所以就出现了从后视镜中看到了自己的车扬长而去的荒唐景象。。。
     我想应该是obs和player的关系没有设好的原因。于是写了一段代码
         vgProp( rearview_obs, VGOBS_TETHERSTATE, VGOBS_FIXED );

         pos = vgNewPos();
         vgPosVec( pos, 0.3f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f );
         vgObservTetherPos( rearview_obs, pos );
         vgDelPos( pos );
         //vgObservPlyr( rearview_obs, plyr_car );
但是还是不行,总是出现问题。

请问哪位大侠知道我哪里错了?该如何解决呢?先谢谢了

最近VR访客

lihaojiebobo 评论于2007-12-6 14:22:36
怎么没人帮忙吧,可能我把问题没说清楚,我再说仔细些
    我以vega实时三维视景仿真这本书第三章的实例2为基础做了一个后视镜,原理就是新建一个rearview_obs,然后在while循环里用这样一段程序
           if(normal_obs&&rearview_obs)
                {
                        vgGetPos(normal_obs,pos);
                        vgGetPosMat(pos,mat);
                        matStack=vgNewMatStack();
                        vgLoadMat(matStack,mat);
                                     vgRotMat(matStack,180.0f,'z');
                        vgScaleMat(matStack,-1.0f,1.0f,1.0f);
                        vgGetMat(matStack,mat);

                        vgPosMat(pos,mat);
                        vgPos(rearview_obs,pos);
使之转180°并且左右对调就可以了,但是我发现只要我车向后开,总是可以从后视镜中看到自己的车跑出去了。。。我想可能是后视的观察者没有和player_car绑定,但是用我上面帖子中的程序却怎么也不起作用。。。
    我又想在adf文件中把gfx,chan,obs等先建好,在程序中找到只用旋转和对调就行了,但是还是不行,不知道错哪里了,哪位大侠给我指点一下吧?

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

GMT+8, 2021-9-29 09:24 AM

返回顶部