从纹理返回信息

时间:2016-10-26 13:56:46

标签: javascript three.js webgl

我正在尝试设置可点击的世界地图。我有一个4096x4096 png作为平面上的纹理,其目的是允许选择不同的国家,同时保持几何尽可能简单。现在通过将投影鼠标坐标的颜色与纹理的颜色进行比较来实现。所以在这种情况下:

enter image description here

鼠标超过德国会给我们255,186,0。如果当前处理的片段是这种颜色,那么返回的是,否则默认为下面的蓝色。它运作良好,悬停在任何颜色分配的国家/地区改变其颜色(有一些小的准确性问题,但我希望解决它。)

然而,问题是在着色器中进行比较。没有办法返回任何东西,所以回到javascript我不知道是否有东西悬停。没有它,我无法显示有关所选国家/地区的任何信息。有没有办法 - 例如 - 在进入着色器之前想出有关该国的颜色的信息?那么我不仅可以将这些信息作为制服发送,还可以在javascript级别使用它。

如果需要我可以生成一些代码,但是到目前为止我所做的一切实际上都有用,我不确定要发布什么。

在有人询问之前,是的,我确实考虑过将每个国家设置为一个单独的网格,但它不仅会花费更多的时间,而且性能也会差得多(它必须在低于平均水平的机器上运行)。

0 个答案:

没有答案