gpt4 book ai didi

opengl - 处理 3d 对象 Dominoes Vuforia 上的触摸

转载 作者:行者123 更新时间:2023-12-02 06:43:48 25 4
gpt4 key购买 nike

我将 vuforia 与示例多米诺骨牌一起使用

请告诉我什么是 domino->pickingTransform

Vuforia::Vec3F intersection, lineStart, lineEnd;
projectScreenPointToPlane(Vuforia::Vec2F(touch1.tapX, touch1.tapY), Vuforia::Vec3F(0, 0, 0), Vuforia::Vec3F(0, 0, 1), intersection, lineStart, lineEnd);

Domino* domino;
Domino* selected = NULL;
float dist;

// For each domino, check for intersection with our picking line
for (int i = 0; i < dominoCount; i++) {
domino = &dominoArray[i];
bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);
if (intersection) {
selected = domino;
selectedDominoIndex = i;
break;
}
}

我用matrix44F(modelViewMatrix)替换了domino->pickingTransform

intersection = SampleMath.getPointToPlaneIntersection(
SampleMath.Matrix44FInverse(vuforiaAppSession.getProjectionMatrix()),
matrix44F, metrics.widthPixels, metrics.heightPixels,
new Vec2F(x, y), new Vec3F(0, 0, 0), new Vec3F(0, 0, 1));
lineStart = SampleMath.getPointToPlaneLineStart(
SampleMath.Matrix44FInverse(vuforiaAppSession.getProjectionMatrix()),
matrix44F, metrics.widthPixels, metrics.heightPixels,
new Vec2F(x, y), new Vec3F(0, 0, 0), new Vec3F(0, 0, 1));
lineEnd = SampleMath.getPointToPlaneLineEnd(
SampleMath.Matrix44FInverse(vuforiaAppSession.getProjectionMatrix()),
matrix44F, metrics.widthPixels, metrics.heightPixels,
new Vec2F(x, y), new Vec3F(0, 0, 0), new Vec3F(0, 0, 1));

boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);

但现在应用程序无法检测到 3d 触摸

我认为domino->pickingTransform是旋转后的modelViewMatrix,不是吗?

我的应用程序没有任何旋转,我需要检测对象相同状态下的触摸

最佳答案

domino->pickingTransform 几乎是为每个多米诺骨牌对象绘制的最终矩阵。多米诺骨牌示例的工作方式是,对于每个对象(多米诺骨牌),应用程序检查屏幕触摸的投影点并查看它是否与对象的矩阵相交。拾取矩阵并不完全相同,因为您想让触摸更加灵敏,所以您将其设置为比绘图矩阵宽一点。

很难理解您到底用什么替换了它,但它应该与您用来绘制每个对象的矩阵非常相似(当然是 4X4)。

关于opengl - 处理 3d 对象 Dominoes Vuforia 上的触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41840841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com