SceneKit,'hit' 相机方向和几何之间的测试

SceneKit, 'hit' testing between camera orientation and geometry

我目前正在关注 David Roonqvist 的 3D Graphics with SceneKit 一书。

第 5 章涉及命中测试,实现它没有问题,但只涉及他对鼠标事件的测试。

现在,我知道我的相机的方向将始终与某个几何体相交。

我需要获取相机方向与几何图形交点的纹理坐标

关于如何进行的任何指示?我一直在寻找没有太大的成功。

感谢任何帮助。

我没试过,但是...

SCNHitTestResult returns,除此之外,textureCoordinatesWithMappingChannel(_:)。文档引用了在被激光击中后向游戏角色的纹理添加焦痕的示例。

看来SCNNode

hitTestWithSegmentFromPoint(_ pointA: SCNVector3,
                     toPoint pointB: SCNVector3,
                     options options: [String : AnyObject]?) -> [SCNHitTestResult]

无论相机的方向如何,都会在相机和几何体之间为您提供所需的命中。如果相机和目标使用不同的局部节点坐标系,则必须使用 convertPosition(_:from:Node:) 或类似函数进行一些转换。