如何使用ARKit ARSKViewDelegate渲染jpg图像?

时间:2017-07-24 21:23:33

标签: ios swift sprite-kit arkit

我想将jpg图像渲染为漂浮在空间中的2d矩形。使用SpriteKit示例 - 如何从ARSKViewDelegate

返回jpg图像

该演示返回SKLabelNode - 是否有适合我从网络获取的jpg图像的Node类,可能是UIImage

func view(_ view: ARSKView, nodeFor anchor: ARAnchor) -> SKNode? {
    // Create and configure a node for the anchor added to the view's session.
    let labelNode = SKLabelNode(text: "")
    labelNode.horizontalAlignmentMode = .center
    labelNode.verticalAlignmentMode = .center
    return labelNode;
}

2 个答案:

答案 0 :(得分:2)

您可以使用SCNPlane并指定UIImage作为该平面的内容。

let imagePlane = SCNPlane(width: sceneView.bounds.width/6000, height: sceneView.bounds.height/6000)
imagePlane.firstMaterial?.diffuse.contents = //<-- UIImage here
imagePlane.firstMaterial?.lightingModel = .constant
let planeNode = SCNNode(geometry: imagePlane)

更新:现在我注意到您正在使用SpriteKit。我共享的代码使用的是SceneKit。

答案 1 :(得分:1)

看起来我可以使用SKSpriteNode中的SKTexture。唯一的问题是我在日志中看到有关性能下降的警告。 [Technique] World tracking performance is being affected by resource constraints [1]

let url = URL(string: imageURL)
let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check
let theImage = UIImage(data: data!)
let Texture = SKTexture(image: theImage!)
return SKSpriteNode(texture: Texture)