在使用 kinect(在 C++ 中)时,我正在学习 D3D 和坐标空间。虽然我可以使用 Direct2D 轻松绘制骨架位置,但我很好奇如何使用 Direct3D 11 绘制这些位置以及我需要哪些坐标空间转换。
一个简单的例子:我想根据左手的运动来平移一个立方体。跟踪左手关节,我可以得到骨架位置。但是,我如何将这些位置转换为立方体的世界空间可以理解的东西?
我尝试了一个解决方案:
- 使用 SkeletonToDepth 转换将骨架位置转换为深度 - 给我屏幕空间的结果。
- 使用 将屏幕空间点映射回对象空间
XMVector3UnProject(...)
,即本质上是一种光线拾取解决方案。
虽然这很好,但有没有更有效的方法不涉及映射回对象空间,并且可以让我直接在屏幕空间或至少在投影空间中工作?