热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

调暗/加亮ARKit相机在物体后面的进给

如何解决《调暗/加亮ARKit相机在物体后面的进给》经验,为你挑选了1个好方法。

我目前正在开发一个ARKit项目,在该项目中,我想使实际的摄影机源变暗,以使3D场景中的对象更加突出。

我到目前为止发现的2个解决方案:

A)手动将CIFilter应用于相机帧,并将其设置为SceneKit场景的背景图像,如本SO帖子所述 ,这里的问题是fps明显下降。

B)像这样设置背景色:

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

可悲的是,alpha <1的颜色仍然是不透明的,因此无论我设置了什么alpha,我都看不到相机的任何内容。

有人能想到其他方法来使摄影机的信号变暗吗?



1> rickster..:

您的选项B无效的原因有两个:

    场景视图是不透明的,因此在其后面没有任何东西可以使部分透明的背景色与之融合。

    sceneView.scene.background 是实际显示相机图像的内容,因此,如果将其设置为一种颜色,则将不再显示相机图像。

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

如您所链接的答案所引用,用于SCNTechnique设置多遍渲染。在第一遍中,使用excludeCategoryMask设置为使所有像素变暗(或模糊或其他)的着色器渲染整个场景,并设置(和场景内容)为仅渲染背景。在第二遍中,仅渲染要显示的没有该着色器的节点(使用简单的传递着色器)。

保留选项B,但使场景视图不透明。将视图 backgroundColor(而非场景的background)设置为纯色,并设置transparency场景的,background以使相机进给淡出该颜色。

使用几何体为场景创建“物理”背景-例如SCNPlane,大尺寸的物体,作为摄像机的子元素放置在一定距离处,该距离比任何其他场景内容都远。设置飞机的背景颜色和透明度。

使用多个视图- ARSCNView,非透明且具有清晰的背景,以及仅显示摄像机供稿的另一个视图(不一定是SceneKit视图)。UIVisualEffectView混淆其他视图(或放入其他有趣的事物,如)以遮盖相机供稿。

向Apple提出一个有关sceneView.background未获得节点和材质获得的全套阴影自定义选项(滤镜,着色器修改器,完整的着色器程序)等的错误,如果没有该选项,则自定义背景比自定义场景的其他方面要困难得多。


推荐阅读
author-avatar
拍友2502882547
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有