2017-03-21 13 views
1

私は3Dボクセルスタイルのアイランドを生成しようとしており、レンガを生成してシーンに配置しています。しかし、カメラノードのz軸を150以上に設定すると、オブジェクトは白い背景の後ろに消えます。Scene Kitでズームアウトした後にSCNNodeが消えますか?

import Cocoa 
import SceneKit 
import PlaygroundSupport 

let view = SCNView() 
let scene = SCNScene() 
view.scene = scene 
view.frame = CGRect(x: 0, y: 0, width: 650, height: 650) 

public func buildIsland(size: Int, image: NSImage, scene: SCNScene){ 

//Start building the island 
var blocks = 0 
for x in 0...size { 
    for y in 0...size { 

     //Create Block 
     var block = SCNBox(width: 10, height: 10, length: 10, chamferRadius: 0) 
     var color = SCNMaterial() 
     color.diffuse.contents = CGColor.init(red: 0, green: 1, blue: 0, alpha: 1) 
     block.materials[0] = color 
     var node = SCNNode(geometry: block) 
     node.position = SCNVector3(x/2, y/2, 0) 
     scene.rootNode.addChildNode(node) 
     blocks = blocks + 1 

    } 
} 

} 




view.autoenablesDefaultLighting = true 
var cameraNode = SCNNode() 
cameraNode.camera = SCNCamera() 
cameraNode.position = SCNVector3(x: 0, y: 0, z: 200) 
scene.rootNode.addChildNode(cameraNode) 

buildIsland(size: 4, image: NSImage(), scene: scene) 

view.allowsCameraControl = true 

PlaygroundPage.current.liveView = view 

答えて

1

カメラが遠くにあるときにクリッピングを避けるために、カメラのzFarプロパティを設定します。例えば

(デフォルト値は100です): cameraNode.camera?.zFar = 500

あなたは良好なパフォーマンスを維持しようとしているときに目に見えるすべてのものを得るために、このプロパティを使用して遊ぶことができます。

関連する問題