首页 > 解决方案 > 是否可以在 Mapbox GL 中实现 3D 水/海洋图层?

问题描述

很长一段时间以来,我一直在使用 three.js 和他们的自定义图层功能在 Mapbox 世界中放置 3D 对象(主要是在水上)。这很好用,但 3D 模型看起来越漂亮,平淡无奇的水似乎就越不令人兴奋。

有谁知道是否可以用 3D 场景替换水,最好用漂亮的海洋/波浪/水着色器?有人做过吗?

我知道那里有很酷的海洋着色器,但我遇到的主要问题是我无法获得仅覆盖水而没有陆地的 3D 场景。

Mapbox 似乎像这样堆叠层(最低的优先):

因此,将 3D 网格置于土地“下方”,也将其置于水下。把它放在水上,放在陆地上。

这是 Mapbox 自己的示例的链接(直接制作着色器,没有 three.js):https ://docs.mapbox.com/mapbox-gl-js/example/custom-style-layer/

有什么方法可以重写这个例子,使 3D 网格只在水面上可见?

mapbox 自定义 3d 图层

标签: three.jsmapboxmapbox-gl-jsmapbox-gl

解决方案


就在这里。如果你能找到塑造海洋的多边形或多多边形。我认为您可以将完整的地图大小设置为正方形作为多边形,然后排除 geoJson 标准定义的大陆。然后你就可以移植这个着色器了在此处输入图像描述

它也可能是Threebox的一个很好的补充


推荐阅读