我正在快速尝试新的RealityKit框架,我想将2D图像放置在ARAnchor上。我设法创建了一个网格平面,并尝试将图像作为纹理添加到该平面。我发现我可以给材质提供局部图像。如何改为使用UIImage?
let resource = try? TextureResource.load(named: "restart")
var material = UnlitMaterial()
material.baseColor = MaterialColorParameter.texture(resource!)
material.tintColor = UIColor.white.withAlphaComponent(0.99)
let imagePlane = ModelEntity(mesh: MeshResource.generatePlane(width: 0.25, height: 0.25), materials: [SimpleMaterial(color: color, isMetallic: true)])
目前,这是在RealityKit中为几何图形添加纹理的最健壮和唯一可用的方法:
let myScene = try! Experience.loadMyScene()
var myMaterial = SimpleMaterial()
myMaterial.baseColor = try! .texture(.load(named: "texture.png"))
myMaterial.metallic = MaterialScalarParameter(floatLiteral: 0.5)
myMaterial.roughness = MaterialScalarParameter(floatLiteral: 0.5)
myMaterial.tintColor = UIColor.blue
let myMesh: MeshResource = .generatePlane(width: 1, depth: 1, cornerRadius: 0.05)
let component = ModelComponent(mesh: myMesh, materials: [myMaterial])
myScene.components.set(component)
arView.scene.anchors.append(myScene)
目前尚无一种方法来获取UIImage并将其直接应用于Material(截至2020年6月)。
[您可以尝试先将UIImage写入磁盘,然后以与“重新启动”纹理相似的方式按名称加载它。