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)



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