TA的每日心情 | 开心 2019-11-11 10:36 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
发表于 2010-11-28 22:02:01
|
显示全部楼层
在OSG里写漫游分为两种,一种是直接在viewer里添加matrixmanipulator,这个比较简单,例子大把。只需要照样在matrixmanipulator下重载一个就可以了。教程专区下面有osg 程序设计里面介绍的就有。
另一种是对当node加到scenedata中的camera进行操作,这个需要在事件中调用camera进行setViewMatrixAsLookAt,要深刻理解其中的三个参数。
比如点W向前可以这样做:理解了就知道该如何写了,其实和重载matrixmanipulator是一样的
camera->getViewMatrixAsLookAt(eye, center, up);
osg::Vec3 delta = center-eye;
eye = eye + delta/2.0;
camera->setViewMatrixAsLookAt(eye, center, up); |
|