TA的每日心情 | 开心 2019-11-11 10:36 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
发表于 2008-3-28 15:18:52
|
显示全部楼层
个人感觉应该不是模型在转,一般操作器都有下面的虚接口来控制场景:
void TrackballManipulator::setByMatrix(const osg::Matrixd& matrix)
{
_center = osg::Vec3(0.0f,0.0f,-_distance)*matrix;
_rotation = matrix.getRotate();
}
osg::Matrixd TrackballManipulator::getMatrix() const
{
return osg::Matrixd::translate(0.0,0.0,_distance)*osg::Matrixd::rotate(_rotation)*osg::Matrixd::translate(_center);
}
osg::Matrixd TrackballManipulator::getInverseMatrix() const
{
return osg::Matrixd::translate(-_center)*osg::Matrixd::rotate(_rotation.inverse())*osg::Matrixd::translate(0.0,0.0,-_distance);
}
类似于这样的矩阵操作,,根据当前的position和lookat可以得到一个矩阵,这个矩阵就是控制当前视口的矩阵,如果是模型在转,怎么做多通道呢,两台机器的视口怎么同步呢
所以应该是视口在转 |
|