OGRE的Bone与Kinect的Bone

1. Ogre::Bone的座标系统,其中的各种scale, position和orientation的使用及含义。

在Ogre::Bone中有很多的position和orientation,与position相关的有普通的position, DerivedPosition和InitialPosition。与orientation相关的有普通的orientation, DerivedOrientation和InitialOrientation。其中普通的position和orientation, InitialPosition和InitialOrientation,都是相对父节点座标系,普通的与当前的Pose一下,Initial*的与初始的bindingPose一样,如图1所示在世界座标系下用此方法画出的骨骼情况(错误),未建立骨骼层次。而DerivedPosition和DerivedOrientation则是经常层层父节点座标系变换而来的,是相对世界座标系,如图2所示在世界座标系下画出的相应的骨骼情况(正确),未建立骨骼层次。对于_getFullTransform还未弄明白(初步猜测为带旋转和平移变换的局部座标系)。


图1 普通的Pose世界座标系下,未建立骨骼层次


图2 DerivedPose世界座标系下,未建立骨骼层次(正确)


2. Kinect::Bone的position与orientation


图3. Kinect设备座标与人体座标关系

KinectSDK获取到的position是相对于kinect相机设备的座标,是世界座标与ogre的座标系一致,如图3所示,而且仅有这一种Position,与Ogre中的derivedposition一致(_setDerivedPosition函数),ogre中的其他position(setPosition函数)都是相对于父节点而言的。对于kinect的orientation,kinectSDK对其进行了座标轴的旋转,如图3中的hip center的orientation,并规定骨骼的方向为+Y,人体面向为+Z,X轴随之旋转,如图4所示。Kinect中获取的orientation可以分为两种:absoluteOrientation和hierarchyOrientation,absolute当然就是世界座标系下的相当于Ogre中_setDerivedOrientation, hierarchyOrientation当然就是相对父节点的座标系而言的,相当于Ogre中setOrientation.


图4 Kinect获取的骨骼Orientation层次图

 

辉辉              

(Fighting Bull Studio)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章