我想将jpg图像渲染为漂浮在空间中的2d矩形。使用SpriteKit示例 - 如何从ARSKViewDelegate
?
该演示返回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;
}
答案 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)