swift - 在 RealityKit 中将 UIImage 作为纹理添加到平面

标签 swift augmented-reality arkit realitykit

我正在 swift 中尝试新的 RealityKit 框架,我想在 ARAnchor 上放置一个 2D 图像。我设法创建了一个网格平面,并尝试将图像作为纹理添加到该平面。我发现我可以为 Material 提供局部图像。我该如何使用 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)

但是,您也可以使用 URL 参数 load()方法:
myMaterial = try! .texture(.load(contentsOf: url))

UIImage 或 CIImage 没有直接分配。

关于swift - 在 RealityKit 中将 UIImage 作为纹理添加到平面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61854324/

相关文章:

swift - 插入具有一对一关系的数据 - Realm

augmented-reality - 通过摄像机扫描 ARKit 中的 3d 对象?

ios - 如何在 Qualcomm 样本的帧标记上使用 glDrawArrays() 而不是 glDrawElements()

3d - 将图像映射到 3D 面部网格

ios - ARKit支持文字识别吗?

ios - 尝试在 ChartDataEntry 中输入日期/字符串

ios - 按钮和开关

objective-c - Swift 不符合 Objective-C 协议(protocol)

ios - 如何将 ARSCNView 适配到 iPhone X 上的 SafeArea?

ios - GameplayKit 中的 GKS 文件是什么?