2017-09-27 1 views
0

J'ai suivi un tutoriel pour créer une règle AR. Par conséquent, avec le code ci-dessous, je suis capable de placer des sphères 3D dans ma scène (que je cherche à garder pour la fonctionnalité de suivi). Cependant, au lieu d'une image 3D, je cherche à placer une image. J'ai essayé de changer le dotGeometry et le placer dans un UIImage et commenter le code matériel mais je ne savais pas comment faire avec le morceau de code dotNode. Par conséquent, comment serais-je en mesure de définir mon image comme l'ajout à l'écran résultant?Modification d'un code pour placer un UIImage 2D par opposition à une géométrie de forme 3D

let dotGeometry = SCNSphere(radius: 0.005) 
    let material = SCNMaterial() 
    material.diffuse.contents = UIColor.red 

    dotGeometry.materials = [material] 

    let dotNode = SCNNode(geometry: dotGeometry) 

    dotNode.position = SCNVector3(hitResult.worldTransform.columns.3.x, hitResult.worldTransform.columns.3.y, hitResult.worldTransform.columns.3.z) 

    sceneView.scene.rootNode.addChildNode(dotNode) 
+1

Quelle forme est quelque chose 2D lorsque l'on considère la troisième dimension? Un avion. Voir 'SCNPlane' et utiliser' SCNBillboardConstraint' si vous voulez le garder toujours pointé sur la caméra. – rickster

Répondre

1

Vous pouvez créer une SCNBox et définir sa longueur sur une très petite valeur pour la faire apparaître à plat.

let box = SCNBox(width: 0.2, height: 0.2, length: 0.005, chamferRadius: 0) 
let material = SCNMaterial() 
material.diffuse.contents = UIImage(named: "image.png") 
box.materials = [material] 

boxNode = SCNNode(geometry: box) 
boxNode.opacity = 1.0 
boxNode.position = SCNVector3(0,0,-0.5) 

scene.rootNode.addChildNode(boxNode) 

Ou vous pouvez suivre une autre approche et ajouter une superposition SKScene (2D) à la SCNScene (3D) comme décrit ici: How can I overlay a SKScene over a SCNScene in Swift?