2

所以基本上我想检查来自大炮的激光束是否击中地形。要么我不理解 Ray 的概念,要么出了点问题。我们来看看这行代码

Intersector.intersectRayTriangle(intersectorRay, new Vector3(0.5f,1,0), new Vector3(0.5f,-1,0), new Vector3(1,0,0), hitPoint);

intersectorRay 的原点为 0,0,0,方向为 1,0,0,所以我假设它从点 0,0 指向“直线右侧”。所以给定三角形顶点的坐标,它应该与它相交,对吗?代码返回假。

现在,另一方面,这一行返回 true:

Intersector.intersectRayTriangle(intersectorRay, new Vector3(0.5f,1,0), new Vector3(0.5f,-1,0), new Vector3(-1,0,0), hitPoint);

对其他示例的测试证明,只有当 Ray 的原点在三角形内时它才会返回 true(很明显,在这种情况下它会击中某些东西......)。

我做错了什么?我从 9 月 6 日开始使用最新的夜间版本的 libgdx。

4

1 回答 1

1

我要在这里说一下它在第一个示例中返回 false 的原因是因为光线没有穿过三角形的面,因为它与光线在同一 xy 平面上拍摄穿过。

相反,如果您的三角形位于 zy 平面上(或任何其他与光线射过的平面不完全一致的平面),我怀疑您会得到预期的结果。

于 2012-09-16T21:42:43.223 回答