我想使用增强现实将3D心脏放在人体内。我有一个源自iPhone相机内在函数的投影矩阵。使用Vuforia SDK生成的投影矩阵和姿势,可以完美地显示相对于帧标记的对象。但是,我想在framemarker后面的场景中放置一个对象。为了保持幻觉,标记后面的任何物体确实需要将摄像机图像放在物体前面。这是一张用于解释的图。
由于投影矩阵将是图像平面前方的空间而不是远平面,因此在我看来,我需要扩展投影矩阵或将整个世界放在另一个投影中。简单地将心脏移位到标记后面并不起作用,原因很明显,你实际上永远不会在图像平面后面放任何东西。所以我要问的问题是,这可能是通过某种投影矩阵扩展来实现的,还是有其他可行的方法呢?
答案 0 :(得分:1)
这不是一个严格的编程答案,但我会尽力帮助。 我没有为iOS XCode编程,而是通过Unity使用Vuforia,我希望这能让你了解如何在你的方法之外解决这个问题。
Unity有一个名为resolution = 1024
multiplier = float(resolution) / (lut[-1][0] - lut[0][0])
lookup = [(0, 0, 0, 0)] * resolution
for index in range(resolution):
r, g, b, a = find_color(lut[0][0] + i / multiplier, vlist, lut)
lookup[index] = (r, g, b, a)
def find_color2(x):
return lookup[int((x - lut[0][0]) * multiplier)]
的东西,它基本上允许一个Object出现在ImageTarget后面。但是,由于您的应用程序要求您查看ImageTarget,您可以在DepthMask
内尝试并更改ImageTarget的
OnTrackingFound()
为透明材料tranform.renderer.material.maintexture
并实施shader
减免我知道这并不像你期望的那样有用,但我希望你能找到答案。
祝你好运。