如何用 VideoMaterial 替换 USD 模型的材质?

问题描述 投票:0回答:1

使用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)
avplayer realitykit visionos
1个回答
0
投票

我最终发现我的 3D 模型缺少 UV 贴图,添加后解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.