查看: 1854|回复: 6

关于跟踪物体的再次讨论(跟踪时的闪烁感)

[复制链接]

该用户从未签到

发表于 2012-12-15 13:39:25 | 显示全部楼层 |阅读模式
学习OSG几个月了,还是感觉没有完全上手!物体的跟踪实现还是有困难,希望各位从事VR的人可以积极讨论!

从我学习VP和Vtree的经验,物体的跟踪都是比较简单的,都是LookFrom()To(),加入到帧循环中即可!

从我个人的理解来看,仿真中物体的运动有两种实现方式,一种是在帧循环中更新设置物体的运动位置;第二种是使用提供的AnimationPath类。第一种方法适合比较简单的应用,如果按照从已知的路径运动,实现起来就比较麻烦;第二种方法可加载路径,自带Pause、Loop等功能,比较方便!

那么我的问题是采用第二种方法出现的!物体的运动数据加载自文本文档,设定为回调函数。那么我实现跟踪的方式是在帧循环中更新视点位置,可使用setViewMatrixAsLookAt()或者setByInverseMatrix()两种方式来实现,执行程序后有很强烈的闪烁感,个人理解是视点位置的设定和回调函数中物体运动位置的更新时间上不完全一致,导致画面闪烁!

如果使用第一种方法肯定是没有问题的,在帧循环中物体位置和观察者矩阵同时变化,不存在时间差的问题,所以画面没有闪烁!我把回调函数理解为每帧循环一次所执行的函数,所以第二种方法也应该可以实现的,难道回调函数理解错误?

请问各位大虾是怎么实现物体跟踪的,如果是使用回调函数,有遇到过类似的问题么?

该用户从未签到

发表于 2012-12-17 08:18:46 | 显示全部楼层
跟踪物体 还有LOOP这个概念么?完全都是实时的数据啊

该用户从未签到

 楼主| 发表于 2012-12-17 09:32:41 | 显示全部楼层
liuzhiyu123 发表于 2012-12-17 08:18
跟踪物体 还有LOOP这个概念么?完全都是实时的数据啊

你的实时是使用网络通信协议的么?还是单机计算得到的~

该用户从未签到

发表于 2012-12-17 10:17:58 | 显示全部楼层
您是否没有屏蔽掉CameraManipulator就直接调用了Camera类的函数?建议您把这一工作放在一个自定义的CameraManipulator中完成

该用户从未签到

 楼主| 发表于 2012-12-17 14:55:34 | 显示全部楼层
array 发表于 2012-12-17 10:17
您是否没有屏蔽掉CameraManipulator就直接调用了Camera类的函数?建议您把这一工作放在一个自定义的CameraM ...

array老师,我现在是用NodeTrackerManipulator,能够近似模拟跟踪了吧~~~不过还差一个天空,我模型初始时是在8000米高空,请问怎么讲地形和天空结合的紧密一些呢~~~

我是用了天空盒,图片也从自带的512X512分辨率更改为了1024X1024,可是还是很模糊,物体相对于地形在运动,但相对于天空似乎没有运动感,有没有比较合适的方法呢?

该用户从未签到

发表于 2012-12-18 09:47:12 | 显示全部楼层
天空盒可以,没有运动感是可能是因为您的天空盒是随着眼睛运动的,当然相对静止。也可以考虑silverlining这样的高品质天空和云层sdk库,它和osg有很好的结合方案

该用户从未签到

发表于 2014-12-22 22:51:28 | 显示全部楼层
楼主你好 请问使用setViewMatrixAsLookAt()的话 ecu三个参数如何获得?或者说要跟踪的模型的 ecu怎么获得?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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