在 Vision Pro 的 RealityKit 中,如何以编程方式为每只眼睛使用不同的纹理贴图?

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

Vision Pro / RealityKit API 中,我可以通过编程方式将纹理贴图添加到网格中:

let planeMeshResource = MeshResource.generatePlane(width: W, height: H))
var planeMaterial = UnlitMaterial(color: .white)
let texture = try! await TextureResource(named: "LeftEyeImage")
planeMaterial.baseColor = MaterialColorParameter.texture(texture)
let viewPlaneEntity = ModelEntity(mesh: planeMeshResource, 
                                  materials: [planeMaterial])

如何以编程方式为每只眼睛指定不同的纹理贴图 立体视觉?我可以想象类似下面的内容,其中我指定了 基于渲染通道的不同材质

planeMaterial.leftEyeBaseColor = MaterialColorParameter.texture(LeftTexture)
planeMaterial.rightEyeBaseColor = MaterialColorParameter.texture(RightTexture)

然后在左眼渲染通道中将使用左侧纹理,类似地 右眼渲染通道。我怎样才能做到这一点?我希望我能做到这一点无需 自定义材质/着色器

更新:我确实在这个随机站点RealityKit节点下找到了相机索引开关(RealityKit)。也许这是什么 可以在表面着色器或 Reality Composer 中使用。

realitykit stereo-3d vision-pro
1个回答
0
投票

https://developer.apple.com/forums/thread/733813 找到的着色器图非常适合我。

使用该图形定义一个着色器,为其命名,然后将该名称指定为 RCP 中对象的

Material
Scene
。您将看到渲染到该对象上的立体对。

让我困惑的是,在 Reality Composer Pro 编辑器中,着色器预览是纯黑色的。在 RCP 编辑窗口中,物体的表面几乎是纯黑色的(尽管您几乎看不到物体后面的材质)。

在设备上预览可以在 AVP 上很好地渲染场景。如果您没有实际的 Apple Vision Pro 来测试,那么您就会陷入困境。摄像机索引开关的

Mono
输入在 RCP 编辑器中正确渲染其图像(如果未设置
Left
Right
输入)。因此,在开发过程中可能需要进行一些程序化切换。

我已提交反馈 FB13688396,请求在编辑器中使用更明显的占位符,并请求文档。

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