如何在 Vuforia(没有 Unity)中点击模型的一部分?
How to make clicks on part of model in Vuforia (without Unity)?
我想在 Vuforia (没有 Unity) 中通过点击屏幕制作调色板的可点击单元格:
我找到了具有类似功能的 Domino 示例并执行了此操作:
创建一个板对象并乘以单元格对象
在点击时调用带参数 x, y(点击坐标)的 isTapOnSetColor 函数并获取坐标,
坐标是正确的,但是得到部分对象的id/name是错误的
我认为这条线有问题:
boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);
在多米诺骨牌示例中是:
bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);
但我不知道做什么 domino->pickingTransform
并粘贴而不是这一行 modelViewMatrix (Tool.convertPose2GLMatrix(trackableResult.getPose()).getData())
我的触摸功能的完整代码:http://pastebin.com/My4CkxHa
你能帮我点击一下吗?或者可能是另一种方式(不是 Unity)?
基本上,domino->pickingTransform
几乎就是为每个多米诺骨牌对象绘制的最终矩阵。多米诺骨牌示例的工作方式是,对于每个对象 (domino),应用程序检查屏幕触摸的投影点并查看它是否与对象矩阵相交。拾取矩阵不完全一样,因为你想让它更灵敏,所以你让它比绘图矩阵宽一点。
您说您得到了错误的 ID,但问题是 - 不同单元格的 ID 是否始终相同?如果不是,这可能是您在矩阵变换中犯的一些小计算错误。我建议进行可视化调试 - 为检测到的 ID 添加一些图形指示,这样您就可以看到应用程序认为您点击了哪个单元格。这应该可以帮助您朝着解决方案前进。
我想在 Vuforia (没有 Unity) 中通过点击屏幕制作调色板的可点击单元格:
我找到了具有类似功能的 Domino 示例并执行了此操作:
创建一个板对象并乘以单元格对象
在点击时调用带参数 x, y(点击坐标)的 isTapOnSetColor 函数并获取坐标,
坐标是正确的,但是得到部分对象的id/name是错误的
我认为这条线有问题:
boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);
在多米诺骨牌示例中是:
bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);
但我不知道做什么 domino->pickingTransform
并粘贴而不是这一行 modelViewMatrix (Tool.convertPose2GLMatrix(trackableResult.getPose()).getData())
我的触摸功能的完整代码:http://pastebin.com/My4CkxHa
你能帮我点击一下吗?或者可能是另一种方式(不是 Unity)?
基本上,domino->pickingTransform
几乎就是为每个多米诺骨牌对象绘制的最终矩阵。多米诺骨牌示例的工作方式是,对于每个对象 (domino),应用程序检查屏幕触摸的投影点并查看它是否与对象矩阵相交。拾取矩阵不完全一样,因为你想让它更灵敏,所以你让它比绘图矩阵宽一点。
您说您得到了错误的 ID,但问题是 - 不同单元格的 ID 是否始终相同?如果不是,这可能是您在矩阵变换中犯的一些小计算错误。我建议进行可视化调试 - 为检测到的 ID 添加一些图形指示,这样您就可以看到应用程序认为您点击了哪个单元格。这应该可以帮助您朝着解决方案前进。