2015-04-23 315 views
1

我想使用增强现实在人的内部放置3D心脏。我有一个从iPhone的相机内在函数派生的投影矩阵。使用Vuforia SDK生成的投影矩阵和姿态完美地显示相对于帧标记的对象。但是,我想在framemarker后面的场景中放置一个对象。为了保持幻象,标记背后的任何物体都需要在物体前面放置相机图像。为了解释的目的,这里是一张图。扩展投影矩阵

Problem illustration - heart should be drawn behind image

由于投影矩阵将在图像平面,而不是远平面的前面的空间,在我看来,我需要可以延长投影矩阵,或将整个世界的另一个投影内。简单地将心脏置于标记后面不起作用,原因很明显,你永远无法将任何东西放在图像平面之后。所以我问的问题是,这是可能通过某种投影矩阵扩展,还是有其他的东西可以工作?

回答

1

这不是一个编程答案,但我会尽力帮忙。 我不会为iOS XCode编写程序,而是通过Unity使用Vuforia,我只希望这能让您了解如何从您的方法中区分这一点。

Unity有一些东西叫DepthMask这基本上允许一个Object出现在ImageTarget后面。但是,因为应用程序需要您通过ImageTarget看你能内OnTrackingFound()尝试改变ImageTarget的

  • tranform.renderer.material.maintexture一个透明材料
  • shader和实施opacity减少

我知道这没有你想象的那么有帮助,但我希望你找到答案。

祝你好运。

+0

关于编程有趣的事情,它有时感觉很像数学。我会研究这DepthMask。我应该添加我没有使用Vuforia来进行渲染,我使用VES/VTK生成的OpenGL ES。 –

+1

我道歉,我的意思是这不是一个编程的答案。 Unity通常会完成渲染和所有事情,所以我对此不甚了解。 –

+0

我真的很想尝试Unity,它必须比这个混乱更好。 :) –