问题标签 [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 投票
0 回答
117 浏览

hidden - 遮挡剔除测试 3d

假设我们有一个身体,其外壳由平面三角形(多边形网格)表示。网格由数百万个多边形组成,以达到所需的精度水平。此外,身体不是凸面的(它不是球体,请查看 wiki 页面“多边形网格”,了解身体的一个很好的例子——海豚)。

对于某个应用程序,我想知道从某个点可以看到哪些多边形。我想强调测试是否可以看到三角形的中心点,因此,一个三角形可能被看到(如果我们看到它的中心点)或被隐藏,我对半看到的多边形不感兴趣。

你能推荐我这样做的好方法吗,我希望将有关多边形可见性的数据作为输出到内存(编程变量 - 所以我将能够进一步使用数据)而不是屏幕

0 投票
0 回答
282 浏览

c++ - 部分遮挡的相机校准

我希望你们这次能理解我,似乎我问的每一个问题都不是真实的或模糊的。

我正在使用 OpenCV 和 C++ 创建一个 3D 图像重建程序。

我已经能够实现相机校准方面,但对部分遮挡不鲁棒,这就是我需要你的专家意见的地方。

当至少一个角被遮挡时,不会检测到任何角,所以我想知道如何检测部分遮挡的角?

0 投票
1 回答
3600 浏览

c++ - C/C++ OpenGL 遮挡剔除

我正在尝试原始的 OpenGL,所以我决定编写基于 3d 块的非常非常简单的游戏,类似于 Minecraft 游戏,只是为了提高我的技能。

我遇到的最后一个问题是剔除。我终于想出了如何制作 Frustum Culling 和 Backface Culling,它们都工作得很好,但不幸的是我不知道如何编写 Occlusion Culling 以不显示被更接近玩家的其他框覆盖的框。

只是为了在主绘制循环中进行测试,我正在遍历所有框,稍后我会将其更改为更有效的方式,现在代码如下所示:

和 Cube::Draw:

我很确定它效率低下,正如我之前所说,这段代码很快就会被优化。现在我正在努力让它发挥作用。bool 变量 showSide 用于检测,如果旁边有其他框,则不会绘制它们之间的边。

我一直在寻找和搜索如何进行遮挡剔除,但我失败了,只有简洁的信息或理论。

我的问题是,任何人都可以帮助我如何不绘制覆盖块?我听说有我编译和注入的 GLEW,它有以下两行:glBeginQuery(GL_SAMPLES_PASSED_ARB, query); glEndQuery(GL_SAMPLES_PASSED);

显然 Query 有助于解决我的问题,但是我在很多方面都没有成功地尝试在 Google 上使用它,首先没有绘制立方体,其次像之前一样绘制了游戏,也覆盖了立方体。

0 投票
4 回答
1272 浏览

image-processing - 前景提取

我正在做一些关于跟踪一个人的工作,我正在使用这个数据集。我现在正在尝试使用背景减法方法(即均值滤波器)提取前景

我的背景就像

背景

如果我尝试像这样减去我当前的帧

在此处输入图像描述

所以减法后我得到这样的图像

在此处输入图像描述

在阈值0.1538之后

我得到这个面具

在此处输入图像描述

所以如果你注意到这个面具,它会因为人和椅子的遮挡而把这个前景分成两部分。我不知道如何解决这个问题。有什么建议么?

0 投票
0 回答
31 浏览

geometry - 用少量基元保守地覆盖位图?

我正在研究在 Minecraft 等基于体素/立方体的游戏中执行遮挡剔除的可能性,我遇到了一个具有挑战性的子问题。我会给它的2D版本。

我有一个位图,很少有像素被添加到其中或从中删除。 图片链接

我想要做的是维护一些覆盖任意大区域的任意小的几何图元集,这样所有图元覆盖的区域都在位图的彩色部分内。 图片链接

有没有一种聪明的方法来维护这些集合?请注意,这与典型的图像跟踪不同,因为图元不能超出线条。如果有帮助,我已经将位图组织成四叉树。

0 投票
1 回答
223 浏览

c++ - DirectX:网格显示被遮挡的面

使用旧网格,我注意到网格背面的面正在显示(DirectX 11)定义了一个状态:

和一个深度缓冲区:

模型看起来像这样有什么遗漏吗?在此处输入图像描述

红色和白色是故意的。提前道歉。

编辑:所有顶点的 alpha 值为 1.0

0 投票
3 回答
1531 浏览

opencv - 凸轮移位闭塞

我正在通过 camshift 算法进行对象跟踪。目前我正在使用内置的 opencv 代码,其中我无法处理遮挡问题。

我的问题是,在这段代码中,当我的红球对象超出相机的视野或者我用手盖住球的某个部分时,它会崩溃并给出以下错误:

这是因为我的 cv2.Camshift -> 参数“prob”没有与我的球对应的任何值(prob 是获得的由阈值球组成的二进制图像)

在这种情况下,我有一个处理遮挡的想法。这是我将球矩阵存储在全局变量中,如果我的相机的当前帧无法获取球矩阵,那么它应该使用全局变量而不是它,直到它找不到并跟踪球。那么如何在给定的代码中应用这个逻辑呢?

那么任何人都可以帮助我如何处理这种球情况下的遮挡。

0 投票
2 回答
1035 浏览

python - 如何检测图像是否被部分遮挡?

我有大量的航拍图像。其中一些镜头被部分遮挡。例如:

在此处输入图像描述

在此处输入图像描述

我正在尝试使用 OpenCV 自动检测哪些图像具有此功能。我最初的目的是检查多个图像中有多少图像是黑色的。但希望有一种聪明的方法可以单独处理图像。

0 投票
1 回答
1834 浏览

file - 在 MeshLab 中删除内部面,而不是所有内部结构

我有一个由连续立方体组成的 stl 文件,如下所示:

http://www.mathworks.com.au/matlabcentral/fileexchange/screenshots/6499/original.jpg

我需要删除立方体的所有共享面,这样结构就变成了一个连续的实体。

请注意,我不能只删除所有内部结构。物体是中空的,必须保持其内部结构。我只想删除相邻立方体的共享面。

MeshLab有没有办法做到这一点?谢谢,

0 投票
1 回答
1172 浏览

c++ - OpenGL - 遮挡查询深度缓冲区?

我刚刚开始研究 OpenGL 中的遮挡查询的主题,但我对它们的实际工作方式有点困惑。

在我发现的大多数示例中,深度和颜色蒙版在使用遮挡查询绘制之前被停用(因为我们实际上不需要“绘制”任何东西),本质上有点像这样:

(假设对象是从前到后绘制的,所以对象 1 在对象 2 的前面。上面的代码只是为了这个问题的伪代码。查询的结果将在以后检索。)

现在,要知道对象 2 是否实际上被对象 1 遮挡,它需要以某种方式保留来自查询 1 的片段信息(我假设在某种深度缓冲区中)。但是我们禁用了对深度和颜色缓冲区的绘制,这意味着什么都没有绘制,这意味着它不应该在任何地方存储任何东西?

是否有特殊的“查询”缓冲区?如果是这样,有没有办法访问它?它是否以任何方式连接到当前绑定的纹理或帧缓冲区?我需要清除它吗?我是否误解了遮挡查询的实际工作方式?