如何在相机ARKit上添加半透明背景

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在相机ARKit上添加半透明背景相关的知识,希望对你有一定的参考价值。

我正在尝试添加一个半透明的背景,从ARKit覆盖我的相机视图。 enter image description here

我尝试不同的东西:

  • 向sceneView.scene添加背景但不支持透明度
  • 添加overlaySKScene,但我的场景上的节点也被覆盖。
  • 使用来自session> capturedImage的CIImage但速度太慢。
  • 使用这篇文章:Reliable access and modify captured camera frames under SceneKit,它可以转换为黑白,但我不明白我如何保持颜色和混合灰色。
  • 搜索OpenGL或Metal,但我是菜鸟!

那么,您是否有想法在ARKit中实现该操作?提前致谢。

答案

我不清楚你想要什么。也许这个代码是你正在寻找的:

override func viewDidLoad() {

    super.viewDidLoad()
    sceneView.delegate = self

    let scene = SCNScene(named: "art.scnassets/ship.scn")
    let box = SCNBox(width: 10000, 
                    height: 10000, 
                    length: 0.01, 
             chamferRadius: 0)

    let planeNode = SCNNode(geometry: box)
    planeNode.position = SCNVector3(0, 0, -20)
    planeNode.geometry?.firstMaterial?.diffuse.contents = UIColor(white: 0, 
                                                                  alpha: 0.9)
    scene!.rootNode.addChildNode(planeNode)

    sceneView.scene = scene!

    guard let currentFrame = sceneView.session.currentFrame else {
        return
    }

    var translation = matrix_identity_float4x4
    translation.columns.3.z = -20
    planeNode.simdTransform = matrix_multiply(translation, 
                                              currentFrame.camera.transform)
}

希望这可以帮助。

以上是关于如何在相机ARKit上添加半透明背景的主要内容,如果未能解决你的问题,请参考以下文章

如何在调查表后面添加半透明矩形背景? [复制]

在android活动中设置片段的形状和透明度

在 ARKit 中同时显示相机捕获图像和场景背景

如何添加不会破坏且不受AutoLayout影响的半透明背景的子视图?

如何使相机预览的透明彩色背景散发出一个视图?

如何使页面的背景半透明以在 Flutter 中显示上一个屏幕?