ios - 在 Scenekit 中使用网格线打开遮挡
问题描述
我想使用带有 SceneKit 而不是 RealityKit 的 iOS ARKit 显示网格。
我可以向网格添加材料,就像这样可以很好地显示网格
let edgesMaterial = SCNMaterial()
edgesMaterial.fillMode = .lines
edgesMaterial.lightingModel = .constant
edgesMaterial.transparency = 1.0
edgesMaterial.diffuse.contents = UIColor.red
scnGeom.materials = [edgesMaterial]
但是,这会在场景中添加线框的重叠线。使用 RealityKit 修复相当简单,只需添加
arView.environment.sceneUnderstanding.options.insert(.occlusion)
如何使用场景包场景获得相同的效果?基本上我想添加一个带有线条的遮挡材质。任何指针?
更新:
通过使用这个,我可以得到一些接近但不完全相同的可视化:
sceneView.debugOptions.insert([.showWireframe])
let occMaterial = SCNMaterial()
occMaterial.colorBufferWriteMask = SCNColorMask(rawValue: 0)
scnGeom.materials = [occMaterial]
线条显示为白色,并且我放置在场景中的任何对象现在都会自动渲染线框
解决方案
推荐阅读
- swift - 可以使用 Google WebRTC 快速添加和隐藏视频通话中的按钮
- vim - 复制 % 寄存器并作为参数传递
- c++ - 如果我使用单独的 .cpp 和 .hpp 文件,则使用内部函数的未定义引用
- asp.net-core - 在运行时构建 ILogger 以在 .NET Core 中进行隔离日志记录
- lua - 在退出 Neovim 终端时运行函数
- c++ - 如何将组件指针从 QML 传递到 C++?
- postgresql - 调整 Azure Postgres PAAS(100% 内存使用)
- python-3.x - 如何组合日期和时间列?
- c# - 具有基本身份验证的 GET 请求适用于 Postman,但不适用于 C#
- sql - TimescaleDB - 如何将行和组结果之间的时间戳差异放入时间箱?