我想在SceneView中将UIImage转换为3D对象。我找到了下面的代码示例,它应该可以工作,但没有显示任何结果。资源“占位符”只是一个随机的PNG图像。
import SwiftUI
import SceneKit
struct TestScene: View {
var cameraNode: SCNNode? {
let node = SCNNode(geometry: SCNPlane())
node.geometry?.firstMaterial?.diffuse.contents = UIImage(imageLiteralResourceName: "placeholder")
return node
}
var body: some View {
SceneView(
scene: SCNScene(),
pointOfView: cameraNode,
options: []
)
}
}
struct TestScene_Previews: PreviewProvider {
static var previews: some View {
TestScene()
}
}

编辑:用一个样例SCNScene测试了这段代码的一个变体,并且它工作了!但我需要弄清楚如何使用SwiftUI将UIImage转换为空SCNScene中的材料。

发布于 2021-05-11 18:16:44
下面是我如何解决它的一个通用示例。请注意,"placeholder“是来自项目XCAssets的图像(PNG)的名称。
import SwiftUI
import SceneKit
struct Augment: View {
var scene: SCNScene? {
let myScene = SCNScene()
let node = SCNNode(geometry: SCNPlane())
node.geometry?.firstMaterial?.diffuse.contents = UIImage(imageLiteralResourceName: "placeholder")
myScene.rootNode.addChildNode(node)
return myScene
}
var body: some View {
SceneView(scene: scene)
}
}

https://stackoverflow.com/questions/67483254
复制相似问题