如何在相机ARKit上添加半透明背景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在相机ARKit上添加半透明背景相关的知识,希望对你有一定的参考价值。
我正在尝试添加一个半透明的背景,从ARKit覆盖我的相机视图。
我尝试不同的东西:
- 向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上添加半透明背景的主要内容,如果未能解决你的问题,请参考以下文章