2017-03-21 1 views
1

Ich versuche eine 3D Voxel Stil Insel zu generieren und erzeuge Steine ​​und platziere sie auf der Szene. Wenn ich jedoch die z-Achse auf dem Kamera-Knoten auf mehr als 150 einstelle, verschwinden Objekte hinter dem weißen Hintergrund.SCNNodes verschwinden nach dem Herauszoomen im Scene Kit?

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 

Antwort

1

konfigurieren zFar Eigenschaft der Kamera Clipping zu vermeiden, wenn die Kamera weiter weg ist. (Der Standardwert ist 100)

Zum Beispiel: cameraNode.camera?.zFar = 500

Sie können mit dieser Eigenschaft spielen alles sichtbar zu bekommen bei dem Versuch, eine gute Leistung zu halten.

Verwandte Themen