gpt4 book ai didi

ios - 变暗/变亮 ARKit 相机在物体后面的反馈

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:21:51 26 4
gpt4 key购买 nike

我目前正在做一个 ARKit 项目,我想在这个项目中调暗实际的摄像头画面,让 3D 场景中的物体更加突出。

目前我找到的 2 个解决方案:

A) 手动将 CIFilter 应用于相机帧并将其设置为 SceneKit 场景的背景图像,如 this SO post 中的回答这里的问题是 fps 显着降低。

B) 像这样设置背景颜色:

sceneView.scene.background.contents = UIColor(white: 0.0, alpha: 0.2)

遗憾的是,具有 alpha <1 的颜色仍然是不透明的,所以无论我设置什么 alpha,我都看不到任何相机画面。

谁能想出一个不同的技巧来使相机画面变暗?

最佳答案

您的选项 B 不适用有两个原因:

  1. 场景 View 是不透明的,所以它后面没有任何东西可以混合部分透明的背景色。
  2. sceneView.scene.background 是实际显示相机图像的内容,因此如果您将它设置为一种颜色,您将不再显示相机图像。

您可能会考虑其他一些选项(大部分未经测试):

  • 根据您链接的答案,使用 SCNTechnique 设置 multipass渲染。在第一遍中,使用使所有像素变暗(或模糊或其他)的着色器,使用设置为仅渲染背景的 excludeCategoryMask(和您的场景内容)渲染整个场景。在第二遍中,仅渲染您想要在没有该着色器的情况下出现的节点(使用简单的直通着色器)。

  • 保留选项 B,但使场景 View 不透明。将 View 的 backgroundColor(不是场景的背景)设置为纯色,并设置场景的透明度 background 根据该颜色淡出相机画面。

  • 使用几何为您的场景创建“物理”背景 — 例如一个大尺寸的 SCNPlane,作为相机的子级放置在比任何其他场景内容远得多的某个固定距离处。设置平面的背景颜色和透明度。

  • 使用多个 View — ARSCNView,使其不透明且背景清晰,另一个(不一定是 SceneKit View )仅显示相机画面。扰乱其他 View (或放入其他有趣的东西,如 UIVisualEffectView)以遮盖相机画面。

  • File a bug with Apple关于 sceneView.background 没有获得节点和 Material 获得的全套着色自定义选项(滤镜、着色器修改器、完整着色器程序)等,如果没有它,自定义背景比自定义其他方面要困难得多的场景。

关于ios - 变暗/变亮 ARKit 相机在物体后面的反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47679441/

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