2014-07-11 9 views
8

Wenn ich ein neues Scene Kit Spiel mit der Swift Sprache zu erstellen, gibt es bereits einige stammen, gibt dieses Ergebnis: enter image description here
ich das Umgebungslicht ausschalten will, die den Würfel Beleuchtung, aber ich habe nicht wie um das zu tun, da kein Licht explizit an irgendeinen Knoten angehängt ist.Wie kann ich das Umgebungslicht im Scene Kit (mit Swift) ausschalten?

Her ist das Spiel-View-Controller-Code:

import SceneKit 
import QuartzCore 

class GameViewController: NSViewController { 

    @IBOutlet var gameView: GameView 

    override func awakeFromNib(){ 
     // create a new scene 
     let scene = SCNScene() 

     // create and add a camera to the scene 
     let cameraNode = SCNNode() 
     cameraNode.camera = SCNCamera() 
     scene.rootNode.addChildNode(cameraNode) 

     // place the camera 
     cameraNode.position = SCNVector3(x: 0, y: 0, z: 2) 

     // create and add a 3d box to the scene 
     let boxNode = SCNNode() 
     boxNode.geometry = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0.02) 
     scene.rootNode.addChildNode(boxNode) 

     // create and configure a material 
     let material = SCNMaterial() 
     material.diffuse.contents = NSImage(named: "texture") 
     material.specular.contents = NSColor.whiteColor() 
     material.specular.intensity = 0.2 
     material.locksAmbientWithDiffuse = true 

     // set the material to the 3d object geometry 
     boxNode.geometry.firstMaterial = material 

     // animate the 3d object 
     let animation: CABasicAnimation = CABasicAnimation(keyPath: "rotation") 
     animation.toValue = NSValue(SCNVector4: SCNVector4(x: 1, y: 1, z: 0, w: M_PI*2)) 
     animation.duration = 5 
     animation.repeatCount = MAXFLOAT //repeat forever 
     boxNode.addAnimation(animation, forKey: "") 

     // set the scene to the view 
     self.gameView!.scene = scene 

     // allows the user to manipulate the camera 
     self.gameView!.allowsCameraControl = true 

     // show statistics such as fps and timing information 
     self.gameView!.showsStatistics = true 

     // configure the view 
     self.gameView!.backgroundColor = NSColor.blackColor() 
    } 

} 
+0

Ich habe Ihren Code auf ObjC portiert und in der iOS SceneKit Vorlage ersetzt, ich habe nur NSImage und NSColor zu UIImage und UIColor, und der Würfel ist gerendert, aber es gibt keine Textur noch Lichter, haben Sie eine Idee was Das Problem könnte sein? Ich denke, der Code lädt die Standardtextur in der Vorlage. Muss ich Ihrem Code ein Licht hinzufügen? – rraallvv

Antwort

10

Es sieht aus wie Sie die "default" Beleuchtung sehen.

Sie können es explizit deaktivieren, indem

gameView.autoenablesDefaultLighting = false 

Aufruf Es wird auch so schnell deaktiviert sein, wie Sie in die Szene Ihre eigenen Lichter hinzuzufügen.

+0

Dies kann auch vom SCNView Inspector im StoryBoard deaktiviert werden. – Toyos

+0

Vielen Dank! Ich hatte vergessen, dir zu danken! –

Verwandte Themen