3

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

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

现在,我知道我的相机的方向总是会与某个几何形状相交。

我需要获取相机方向和几何形状之间相交点的纹理坐标。

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

任何帮助表示赞赏。

4

1 回答 1

2

这个我没试过,但是...

SCNHitTestResult回报,除其他外,textureCoordinatesWithMappingChannel(_:)。文档引用了在游戏角色被激光击中后为其纹理添加焦痕的示例。

看来SCNNode

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

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

于 2015-11-02T21:21:50.733 回答