使用RealityKit,可以创建一个ModelEntity并将VideoMaterial放入其中,它将完美地渲染和播放视频。
我从 Blender 获得了一个预制的 3D 模型,导出到 USDZ,它在visionOS 上渲染得很好,但如果我用 VideoMaterial 替换该材质,它的表面会变成全黑。
我是 3D 方面的新手,所以我不知道模型中是否有任何东西干扰了这种行为。
有任何故障排除步骤建议吗?
RealityView { content in
let player = AVPlayer(url: Bundle.main.url(forResource: "Onboarding", withExtension: "mp4")!)
let videoMaterial = VideoMaterial(avPlayer: player)
if let scene = try? await Entity(named: "Cube") {
if let screenEntity = scene.children[0].children[0] as? ModelEntity {
screenEntity.model?.materials[4] = videoMaterial
}
content.add(scene)
player.play()
}
}
如果我用这样的东西替换材质,它确实会渲染颜色:
screenEntity.model?.materials[4] = SimpleMaterial(color: .red, isMetallic: true)
我最终发现我的 3D 模型缺少 UV 贴图,添加后解决了问题。