我在Swift中尝试了新的RealityKit框架,我想在ARAchor上放置一个2D图像。我设法创建了一个网格平面,并尝试将图像作为纹理添加到该平面。我发现我可以为材质给予局部图像。如何使用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)])
2条答案
按热度按时间3gtaxfhh1#
目前,在RealityKit 2.0中,不能将UIImage或CIImage用作着色器的纹理。在RealityKit的两个版本中,纹理必须通过
load()
方法的String类型参数加载。RealityKit 2.0
要在RealityKit 2.0中将纹理指定给着色器,请使用以下方法:
RealityKit 1.0
要在RealityKit 1.0中将纹理指定给着色器,请使用以下方法:
CGImage
尽管如此,您可以从内存中的Core Graphics图像创建纹理资源:
此外,您可以使用URL参数:
7eumitmz2#
目前还没有一种方法可以将UIImage直接应用于材质(截至2020年6月)。
您可以先将UIImage写入磁盘,然后按名称加载它,方法与“restart”纹理类似。