如何为 RealityKit / ARView 指定双面材质?

smi*_*hco 8 ios swift arkit realitykit

我正在尝试在 RealityKit 中加载模型和纹理(在 ARView 实例中设置),但我似乎无法弄清楚如何指定材料应该是双面的。

我将模型加载为ModelEntity,纹理加载为TextureResource. 模型和纹理正在加载,但正在向一侧倾斜。由于模型是开放的(即背面是可见的),它的渲染方式存在差距。

到目前为止,我有,

let entity: ModelEntity = try .loadModel(named: "model.obj")

var material = SimpleMaterial()
material.baseColor = try .texture(.load(named: "texture.png"))
entity.model?.materials = [material]
Run Code Online (Sandbox Code Playgroud)

我希望找到一个属性,例如

material.twoSided = true
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我还没有在 RealityKit 中找到等效的东西。

有人知道如何在 RealityKit 中设置双面材质吗?

use*_*663 0

你所描述的就是所谓的剔除。例如检查MTLCullMode 。从那里您可以跳转到可以设置剔除模式的各个点(您对不剔除感兴趣)。

  • 如果您有关于如何为 RealityKit 实体中的网格设置剔除选项的任何具体信息,这将非常有帮助。在阅读文档时,我没有找到任何这样的选项。我假设这将是一个材质选项而不是剔除选项,因为这就是 Apple 在 SceneKit API 中设置它的方式,但我可能是错的。 (2认同)