我知道如何确定光线击中四边形的位置,但我不知道如何确定击中位置的方向。
ArCore 将平面的HitResult 姿势描述为:
HitResult.getHitPose()
返回射线与检测到的真实世界几何体之间的交点位姿。位置是光线与几何体相交的空间位置。方向是面向用户设备的最大努力,其确切定义因被击中的 Trackable 而异。
平面:X+ 垂直于投射光线并平行于平面,Y+ 指向平面法线(向上,对于 HORIZONTAL_UPWARD_FACING 平面),Z+ 平行于平面,大致指向用户设备。
请注意,姿势是一个位置(Vector3)和一个方向(四元数)。
我目前正在使用DirectX::TriangleTests::Intersects来计算光线击中四边形的位置。使用平面法线计算 Y+ 很容易,但我不知道如何计算 X+ 和 Z+。