How can I show a moving 3D object in my Simple view Application using scene kit view with swift 4.
For example bee.glb file in windows, I am using these four files:
- body.bmp
- body.jpg
- volkeswagon-vw-beetle.mtl
volkeswagon-vw-beetle.obj
import UIKit import SceneKit import ARKit class ViewController: UIViewController { @IBOutlet weak var sceneView: SCNView! override func viewDidLoad() { super.viewDidLoad() // 1: Load .obj file let scene = SCNScene(named: "volkeswagon-vw-beetle.obj") // 2: Add camera node let cameraNode = SCNNode() cameraNode.camera = SCNCamera() // 3: Place camera cameraNode.position = SCNVector3(x: 0, y: 10, z: 35) // 4: Set camera on scene scene!.rootNode.addChildNode(cameraNode) // 5: Adding light to scene let lightNode = SCNNode() lightNode.light = SCNLight() lightNode.light?.type = .omni lightNode.position = SCNVector3(x: 0, y: 10, z: 35) scene?.rootNode.addChildNode(lightNode) // 6: Creating and adding ambien light to scene let ambientLightNode = SCNNode() ambientLightNode.light = SCNLight() ambientLightNode.light?.type = .ambient ambientLightNode.light?.color = UIColor.darkGray scene?.rootNode.addChildNode(ambientLightNode) // Allow user to manipulate camera sceneView.allowsCameraControl = true // Show FPS logs and timming sceneView.showsStatistics = true // Set background color sceneView.backgroundColor = UIColor.white // Allow user translate image sceneView.cameraControlConfiguration.allowsTranslation = false // Set scene settings sceneView.scene = scene } }
The output is:
"3DVideo[6430:105708] [SceneKit] Error: Physically based lighting model is not supported by the OpenGL renderer, using Phong instead (3) 2019-09-02 03:29:13.297536-0700 3DVideo[6430:105708] [SceneKit] Error: Physically based lighting model is not supported by the OpenGL renderer, using Phong instead (2) 2019-09-02 03:29:13.308381-0700 3DVideo[6430:105708] [SceneKit] Error: Physically based lighting model is not supported by the OpenGL renderer, using Phong instead"