我目前正在关注 David Roonqvist 的 3D Graphics with SceneKit 一书。
第 5 章处理命中测试,实现它没有问题,但只处理他的鼠标事件测试。
现在,我知道我的相机的方向总是会与某个几何形状相交。
我需要获取相机方向和几何形状之间相交点的纹理坐标。
关于如何去做的任何指示?我一直在寻找没有太大的成功。
任何帮助表示赞赏。
这个我没试过,但是...
SCNHitTestResult
回报,除其他外,textureCoordinatesWithMappingChannel(_:)
。文档引用了在游戏角色被激光击中后为其纹理添加焦痕的示例。
看来SCNNode
是
hitTestWithSegmentFromPoint(_ pointA: SCNVector3,
toPoint pointB: SCNVector3,
options options: [String : AnyObject]?) -> [SCNHitTestResult]
无论相机的方向如何,都会在相机和几何体之间为您提供所需的命中。如果相机和目标使用不同的局部节点坐标系,则必须使用convertPosition(_:from:Node:)
或类似功能进行一些转换。