将 webgl canvas 上的像素与网格面匹配

Matching pixels on webgl canvas with mesh faces

基本上我在 XY 平面上有一个六边形网格,我在其上绘制了一个伪随机生成的景观。

然后为了决定哪张脸是水,哪张是陆地,我检查了每张脸的白色像素。如果白色像素 > 黑色像素,则为陆地,否则为水。

我现在的做法是在屏幕外渲染缓冲区,然后对 canvas 上的每个像素进行光线投射以了解该像素属于哪个面,然后对所有像素求和每张脸

问题是...canvas 是 1000x700 像素,光线投射 700,000 像素需要 AGES。

所以问题是...是否有任何 faster/easier 方法可以知道哪个面位于 canvas 上的任意 (x,y) 像素处,而无需对整个网格进行光线投射到死。

我找到了另一个执行速度更快的解决方案,1000x700 视口只需 10-15 秒,而不是 7 分钟以上。

我渲染到屏幕外缓冲区,然后计算屏幕坐标中每个面的中心。然后我只是 运行 一个简单的洪水填充算法,其中黄色线框像素是边界,从每个面部中心开始。这样我就可以计算每张脸上的每个像素。