gpt4 book ai didi

swift - ARKit——在不可见平面下渲染 3D 对象

转载 作者:行者123 更新时间:2023-11-28 05:53:23 25 4
gpt4 key购买 nike

我有一个带有不可见 SCNPlane 的 ARKit 场景:

plane.geometry?.firstMaterial?.colorBufferWriteMask = []

这个平面放置在地面上,用于渲染场景中放置的其他对象的延迟阴影

我想渲染另一个 SCNPlane,它应该与不可见平面处于同一水平(相同的 Z 坐标)。问题是,每次新对象在不可见平面下时,它根本不会被渲染。

有什么方法可以在不可见平面下渲染物体吗?

最佳答案

You can achieve it using the following lines of code:

shadowsPlane.geometry?.materials.first?.writesToDepthBuffer = true
shadowsPlane.geometry?.materials.first?.readsFromDepthBuffer = true

.colorBufferWriteMask 选择两个实例属性之一:

shadowsPlane.geometry?.materials.first?.colorBufferWriteMask = []

为您的对象设置渲染顺序,例如:

shadowsPlane.renderingOrder = -1   // the nearest layer

当然,使用适当的 .lightingModel 实例属性:

shadowsPlane.geometry?.materials.first?.lightingModel = .constant 

请记住,两个平面之间会有一些微小的气隙:

shadowsPlane.position = SCNVector3(x: 0, y: 0, z: 0)
floorPlane.position = SCNVector3(x: 0, y: -0.01, z: 0)

关于swift - ARKit——在不可见平面下渲染 3D 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52135402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com