2015-11-02 77 views
2

我目前正在跟隨David Roonqvist的3D圖形和SceneKit書。SceneKit,在相機方向和幾何之間進行「撞擊」測試

第5章涉及命中測試,沒有實現它的問題,但只涉及他的鼠標事件的測試。

現在,我知道我的相機的方向將始終與某個幾何相交。

我需要獲取相機方向和幾何之間的相交點的紋理座標。

任何指針如何去呢?我一直在尋找沒有太多成功。

任何幫助表示讚賞。

回答

1

我還沒有試過,但...

SCNHitTestResult回報,除其他事項外,textureCoordinatesWithMappingChannel(_:)。文檔列舉了一個例子,在激光擊中游戲角色的紋理後,將焦痕添加到遊戲角色的紋理中。

看來,SCNNode

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

會給你你需要的命中,相機和幾何形狀之間,無論相機的方位。如果相機和目標正在使用不同的本地節點座標系,則必須使用convertPosition(_:from:Node:)或類似功能進行一些轉換。

+0

hay哈爾,我結束了申請SCNSceneRenderer.hitTest(....但也感謝您的有效答案! –

+0

太好了!請將您的解答作爲答案,然後接受答案,因此問題將顯示爲關閉另外,我希望看到更多關於如何使用SCNSceneRenderer的細節! –

+0

sceneView.delegate = self,然後實現:func renderer(渲染器:SCNSceneRenderer,didRenderScene場景:SCNScene,atTime時間:NSTimeInterval){renderer.hitTest (中點,選項:零),給出了相同的[SCNHitTestResult] –

相關問題