簡體   English   中英

SceneKit,縮放相機以適合節點

[英]SceneKit, Zoom camera to fit node

嗨,我有一個非常簡單的場景,其中包含3個節點:

  • 相機
  • STL

放置STL時,它非常小,因此用戶必須將相機縮放很多。 我想做的是以編程方式將攝像機縮放到合適的STL節點,但不確定如何。

到目前為止,這是我所擁有的:

stlNode = .... // Custom node
lightNode = scene?.rootNode.childNode(withName: "omni", recursively: true)
        cameraNode = scene?.rootNode.childNode(withName: "camera", recursively: true)

        cameraNode.constraints  = [SCNLookAtConstraint(target: stlNode)]
// Zoom to fit the stlNode here.
        scene?.rootNode.addChildNode(stlNode)


您可以嘗試創建cameraClass,然后添加zoomIn(),zoomOut()函數,以便進行調整。 您還可以將節點擴大一點,看看是否有幫助。

var cameraEye = SCNNode()
var cameraFocus = SCNNode()

...
init()
    {
        cameraEye.name = "Camera Eye"
        cameraFocus.name = "Camera Focus"

        cameraFocus.isHidden = true
        cameraFocus.position  =  SCNVector3(x: 0, y: 0, z: 0)

        cameraEye.camera = SCNCamera()
        cameraEye.constraints = []
        cameraEye.position = SCNVector3(x: 0, y: 15, z: 0.1)

        let vConstraint = SCNLookAtConstraint(target: cameraFocus)
        vConstraint.isGimbalLockEnabled = true
        cameraEye.constraints = [vConstraint]
    }
// Add your camera nodes
gameNodes.addChildNode(camera.cameraEye)
gameNodes.addChildNode(camera.cameraFocus)

ZoomIn()/ zoomOut()只是調整距離的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM