检测不同颜色之间的边界



我正在基于元胞自动机方法生成3D多晶结构。我的渲染结构如下所示:http://www-e.uni-magdeburg.de/dzoellne/simulation/Bilder/3D_structure.gif

有没有办法标记每种颜色的边界?每种颜色都受黑线限制,如下所示:http://web.boun.edu.tr/jeremy.mason/research/images/monte_carlo.png

不幸的是,我使用的是旧的1.1 OpenGL。

好吧

,我可能有一个解决方案,但它很慢。从缓冲区中取出您的当前图像并将其存储到数组中。在检查数组中的每个像素以及像素应该为黑色的位置后,在屏幕上放置一个黑点。拍摄图像很慢,放置点也很慢,但我在 1.1 中看不到另一种方法。

也许使用

模板缓冲区?

我会尝试渲染图像两次,在 X 和 Y 中略有 (1px) 偏移。在渲染过程中,为每种颜色分配不同的模具值。然后,如果在模板缓冲区上使用"添加"操作渲染第一遍,并使用"减法"渲染第二遍,则应在模具缓冲区中获得简单的边缘检测。然后,您只需要在启用模板测试的情况下渲染黑色四边形。

我意识到这种方法可能不是像素完美的,并给出了一些伪影,但它是我想到的最好的ATM:)。

相关内容

  • 没有找到相关文章

最新更新