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