2017-09-03 6 views
0

"Material"オブジェクトを使用してARKitのキューブにイメージを追加できません。ここでARKitのキューブにテクスチャイメージを追加できません

コードです:

import UIKit 
import SceneKit 
import ARKit 

class SimpleBoxViewController: UIViewController, ARSCNViewDelegate { 

var sceneView: ARSCNView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.sceneView = ARSCNView(frame: self.view.frame) 
    self.view.addSubview(self.sceneView) 

    sceneView.delegate = self 
    sceneView.showsStatistics = true 

    let scene = SCNScene() 

    let box = SCNBox(width: 0.2, height: 0.2, length: 0.2, chamferRadius: 0) 

    let material = SCNMaterial() 

    //This is not working 
    material.diffuse.contents = UIImage(named: "<someImage>.png") 

    let node = SCNNode() 
    node.geometry = box 
    node.geometry?.materials = [material] 
    node.position = SCNVector3(0, -0.1, -0.5) 
    scene.rootNode.addChildNode(node) 

    sceneView.scene = scene 


} 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    let configuration = ARWorldTrackingConfiguration() 
    sceneView.session.run(configuration) 
} 

override func viewWillDisappear(_ animated: Bool) { 
    super.viewWillDisappear(animated) 

    // Pause the view's session 
    sceneView.session.pause() 
} 

私は、様々な異なる画像が、何も作品を追加しようとしました。唯一動作するイメージは、ARKitプロジェクトにプリロードされた "textures.png"というイメージです。

イメージを読み込む特定の要件はありますか?

答えて

2

私は100%確信していませんが、imageNameに.pngを含めることに問題がある可能性があります。この画像はアセットフォルダにある必要があるためです。

とにかく、このコードは私のために働いており、画像付きキューブの作成に関して同じことを試みます。これは私の作品

material.diffuse.contents = UIImage(named: "art.scnassets/textur") 

var box = SCNBox(width: pd.width, height: pd.height, length: 0.01, 
chamferRadius: 0.0) 
var imageMaterial = SCNMaterial() 
var image = UIImage(named: "image") 
imageMaterial.diffuse.contents = image 
box.materials = [imageMaterial, imageMaterial, imageMaterial, imageMaterial, imageMaterial, imageMaterial] 
var cube = SCNNode(geometry: box) 
+1

正しいこと:UIImage(名前: "")は拡張子を必要としません。 PNG –

0

あなたは次のようにパスを追加する必要があります。

関連する問題