问题标签 [occlusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4548 浏览

ios - 是否有可能有一个透明的 SCNNode,但它会遮挡它后面的任何对象?

所以要明确我的目标,因为我没有任何代码可以分享......假设我有一个位于相机和另一个 SCNNode 之间的 SCNNode。第一个 SCNNode 是一个 SCNBox,但没有纹理,因此可以在它后面看到第二个 SCNNode。我想给第一个节点一个透明的材质,但让它也遮挡它后面的所有节点,就好像它是不透明的一样。在常规场景中,这意味着您可以看到场景背景颜色,也许是黑色,但我计划在 ARKit 中执行此操作,这更有意义,因为这意味着您只会看到其背后的真实世界。

0 投票
1 回答
170 浏览

opencv - OpenCV 中用于跟踪经过遮挡对象的渐变曲线的函数

OpenCV 中是否有函数可以“跟踪”逐渐变化的曲线而不遵循急剧发散的交叉线?例如:如果有人试图追踪两个交叉回旋镖的单独轮廓,有没有一种简单的方法可以沿着曲线“通过”两个回旋镖交叉的交叉点?

这将需要某种惯性组件,当曲线被另一个交叉的回旋镖打断时,它会继续一条“虚拟”线,然后在另一侧找到原始线的延续。

这看起来很简单,但在试图解释它时听起来很复杂。:-) 这似乎是一个经常发生的场景(试图追踪一个被遮挡的对象)。也许是第三方图书馆或专业项目的一部分?

0 投票
1 回答
838 浏览

unity3d - 在 HTC Vive 上使用 Unity、VRTK 和 SteamVR 时,后处理堆栈环境光遮蔽停止工作

当从 Post Processing Stack 资产添加环境光遮蔽到 SteamVR 相机时,它可以正常工作,直到我点击播放按钮(SteamVR 已为此启用,因为 VRTK 管理器会自动禁用它)。之后它就消失了。我注意到,如果我在运行时在组件层次结构中移动后处理行为脚本,环境光遮蔽就会起作用。任何帮助表示赞赏。

0 投票
2 回答
1436 浏览

point-cloud-library - 使用 pcl voxelgridOcclusionEstimation 在点云中进行遮挡估计

我需要找出点云的哪些点从位于原点(0,0,0)的 RGBD 传感器可见。我尝试使用 pcl 的 voxelgridOcclusionEstimation 类来确定传感器看到的云中的可见区域。它使用光线追踪技术。

作为一个实验,我试图在一个球体中获得可见区域,其中心满足以下条件之一:

  1. 中心沿 x
  2. 中心沿 y
  3. 中心沿 z
  4. 中心沿 xz 平面
  5. 中心沿 yz 平面
  6. 中心沿 xy 平面。

在所有情况下,传感器都位于零旋转的原点。

voxelgridOcclusionEstimation 会产生奇怪的结果。绿色区域表示可见区域,而红色表示遮挡区域。

沿 x 轴的球体

沿 z 轴的球体

沿 y 轴的球体

沿 xy 平面的球体

沿 yz 平面的球体

我的代码是:

0 投票
1 回答
309 浏览

ios - ARKit Occlusion 不可见平面参考图像

我试图隐藏SCNPlanes在一个SCNPlaneARReferenceImage. 使用SCNAction我想显示旁边的那些飞机ARReferenceImage

问题

SCNPlanes仍然可见且未隐藏。

这是我用于遮挡的代码:

这是我的代码: https ://gist.github.com/magicmikek/0444fbd5c146131ad08fbb19875fbc83

0 投票
1 回答
691 浏览

python - 部分被遮挡的物体(平行线)检测

我在使用 opencv/python 进行对象检测时遇到了一些问题。

如果你看图像,我已经知道两个绿色框的四个角。我试图检测的物体是红色衬里的物体,一种软管的形状。

我的计划是从绿色盒子(我已经完成)中获取软管的宽度(w),并找到彼此之间距离为 w 的平行线。

在这里,我遇到了两个问题,正在寻找潜在的解决方案。

  1. 我怎样才能检测到所有平行线?我认为最好从绿色框的四个角开始,因为这些点位于红线的路径中。我希望我可以从角落投射线条,使它们跟随白色像素,直到它们遇到死角或尖角。有没有办法在白色轮廓中导航?

  2. 下一个问题(假设 Q1 已解决)是红色线在中间被黄色部分遮挡。我怎样才能使两个红色部分被视为同一个对象?我正在寻找底部红线的尽头。

图片

0 投票
0 回答
888 浏览

python - Blender(Python):检查脚本中的顶点是否从相机可见(有遮挡)

如何检查模型中的顶点是否可以被相机看到,或者它是否隐藏在另一个对象后面?

我的目标是使用该信息来查找将围绕从相机查看的对象绘制的边界框的坐标和大小,然后将该边界框的信息保存在文本文件中(这已经完成并且可以工作)。

我不需要也不希望选择顶点,我只想要它们的位置以及它们是否可以被相机看到。这样,我可以检查最高和最低的顶点以及最左边和最右边的顶点,并使用这些坐标来创建我的边界框。

谢谢!

0 投票
1 回答
125 浏览

javascript - 如何在正交渲染中更正不透明对象的排序顺序

在 THREE.js 中,当通过离轴 OrthographicCamera 查看立方体网格时,一旦相机旋转到足以使对象相互遮挡,似乎对象的渲染顺序不是基于它们在空间中的位置,而是它们的创建顺序。

我已尝试设置THREE.WebGLRenderer( { antialias: true, sortObjects: false } );,但这似乎无法解决问题。

这是一个动画小提琴,可以看到这种奇怪的埃舍尔式效果:http: //jsfiddle.net/rfbvdmxn/2/

这是对象重叠之前的场景: 离轴正交渲染

当我继续沿同一方向旋转相机并且对象重叠时,您可以看到最后面的对象(从相机的角度来看)最终遮挡了最前面的对象:

在此处输入图像描述

这里发生了什么,更重要的是我该如何纠正这个问题?

0 投票
0 回答
1218 浏览

unity3d - 使用 Unity 烘焙环境光遮蔽进行无光照着色器

我正在 Unity 中开发一款手机游戏,我们已经到了开发的优化阶段。我们一直在使用来自后处理堆栈的实时 AA,但我想切换到烘焙 AA,因为除了玩家在我们的游戏中移动之外,什么都没有。

这就是问题所在:我们在游戏中只使用未点亮的材质。这对于后处理堆栈来说不是问题,但它确实可以防止烘焙环境光遮蔽在游戏中可见。我考虑过两种可能。

可能性 1:我们使用光照着色器,但禁用所有实时光照并简单地设置烘焙光照,使其看起来没有光照。这个解决方案的主要问题是我认为它的性能不如我们想要的那么好。

可能性 2:我们编辑自定义无光照着色器以包含统一的烘焙光照层。我相信这是最好的选择,因为它可以保持我们自定义着色器的性能。这样做的问题是我找不到任何关于需要更改以实现这一点的文档。

所以,我的问题是:哪种可能性最好?如果是可能性 1,这会严重影响我们的表现吗?如果是 possibilty 2,我需要做什么才能完成这项工作?感谢您提供任何帮助。

0 投票
0 回答
117 浏览

opengl - 具有延迟渲染和环境光遮蔽的镜子

从标题中可以看出,我正在尝试在使用延迟渲染和环境光遮蔽的同时创建镜面反射。对于环境光遮挡,我专门使用 ssao 算法。

为了创建镜子,我使用的基本思想是将所有模型反射到镜子的另一侧,然后只渲染通过镜子可见的部分。

使用延迟渲染,我决定在创建 gBuffer 期间执行此操作。为了实现反射物体的正确照明,我确保 gBuffer 中反射物体的位置和法线与它们的“非反射”版本相同。这样,实际模型及其图像都会收到相同的照明。

我的问题现在与 ssao 算法有关。似乎反射对象被计算为高度遮挡,这导致您可以在镜子中看到黑色区域:

在此处输入图像描述

我注意到这些黑色区域只出现在我看不到的地方。没有镜子我能看到的东西上没有意想不到的黑点。

请注意,gBuffer 中的数据都在视图空间中。所以那里一定有联系。也许在 ssao 期间使用的随机样本或其法线计算不正确。

所以,这是环境光遮蔽的片段着色器:

关于为什么会出现这些黑色区域的任何想法或纠正它们的建议?我可以忽略反射中的环境光遮挡,但我对此并不满意。

也许,如果环境光遮蔽着色器使用反射对象的位置和法线,就不会有问题。但是后来我会遇到在缓冲区中保存更多东西的麻烦,所以我现在放弃了这个想法。