Search code examples
swiftscenekit.obj

Scene Kit View with moving Object


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:

  1. body.bmp
  2. body.jpg
  3. volkeswagon-vw-beetle.mtl
  4. 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"


Solution

  • i resolve this issue by Just change my file extension from .obj to .dae.Because obj file has no any animation