具有移动对象的场景套件视图
Scene Kit View with moving Object
如何使用带有 swift 4.
的场景套件视图在我的简单视图应用程序中显示移动的 3D 对象
例如windows中的bee.glb文件,我正在使用这四个文件:
- body.bmp
- body.jpg
- 大众-大众-beetle.mtl
大众-大众-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
}
}
输出为:
"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"
我通过将我的文件扩展名从 .obj 更改为 .dae.Because obj 文件没有任何动画来解决此问题
如何使用带有 swift 4.
的场景套件视图在我的简单视图应用程序中显示移动的 3D 对象例如windows中的bee.glb文件,我正在使用这四个文件:
- body.bmp
- body.jpg
- 大众-大众-beetle.mtl
大众-大众-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 } }
输出为:
"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"
我通过将我的文件扩展名从 .obj 更改为 .dae.Because obj 文件没有任何动画来解决此问题