2
我目前正在跟隨David Roonqvist的3D圖形和SceneKit書。SceneKit,在相機方向和幾何之間進行「撞擊」測試
第5章涉及命中測試,沒有實現它的問題,但只涉及他的鼠標事件的測試。
現在,我知道我的相機的方向將始終與某個幾何相交。
我需要獲取相機方向和幾何之間的相交點的紋理座標。
任何指針如何去呢?我一直在尋找沒有太多成功。
任何幫助表示讚賞。
我目前正在跟隨David Roonqvist的3D圖形和SceneKit書。SceneKit,在相機方向和幾何之間進行「撞擊」測試
第5章涉及命中測試,沒有實現它的問題,但只涉及他的鼠標事件的測試。
現在,我知道我的相機的方向將始終與某個幾何相交。
我需要獲取相機方向和幾何之間的相交點的紋理座標。
任何指針如何去呢?我一直在尋找沒有太多成功。
任何幫助表示讚賞。
我還沒有試過,但...
SCNHitTestResult
回報,除其他事項外,textureCoordinatesWithMappingChannel(_:)
。文檔列舉了一個例子,在激光擊中游戲角色的紋理後,將焦痕添加到遊戲角色的紋理中。
看來,SCNNode
的
hitTestWithSegmentFromPoint(_ pointA: SCNVector3,
toPoint pointB: SCNVector3,
options options: [String : AnyObject]?) -> [SCNHitTestResult]
會給你你需要的命中,相機和幾何形狀之間,無論相機的方位。如果相機和目標正在使用不同的本地節點座標系,則必須使用convertPosition(_:from:Node:)
或類似功能進行一些轉換。
hay哈爾,我結束了申請SCNSceneRenderer.hitTest(....但也感謝您的有效答案! –
太好了!請將您的解答作爲答案,然後接受答案,因此問題將顯示爲關閉另外,我希望看到更多關於如何使用SCNSceneRenderer的細節! –
sceneView.delegate = self,然後實現:func renderer(渲染器:SCNSceneRenderer,didRenderScene場景:SCNScene,atTime時間:NSTimeInterval){renderer.hitTest (中點,選項:零),給出了相同的[SCNHitTestResult] –