我正在尝试但未能解决如何在单个平面上实现材质(图像)的四叉树,就像谷歌地图风格的可缩放瓷砖越接近越精确。
简而言之,我希望能够拥有一个 1x1 图像纹理(覆盖一个 256 单位宽和高的平面),然后可以用 2x2 纹理替换,然后可以用 4x4 纹理替换,依此类推。
就像下面的图片示例……</p>
理想情况下,我想避免为每个缩放级别/段数创建不同的平面。一个完美的解决方案将允许我将单个平面分成 8x8 段(最高缩放)并即时更新纹理数量。所以它会从所有 64 (8x8) 段的 1x1 纹理开始,然后变为 2x2 纹理,每个纹理覆盖 4x4 段,依此类推。
不幸的是,我无法弄清楚如何做到这一点。我探索了materialIndex
为每个面设置,但您无法在第一次渲染后更新它们,因此这不起作用。我试过查看 UV 坐标,但我不明白它在这种情况下是如何工作的,也不明白如何在 Three.js 中实际实现它——对于这种特定情况,文档/示例的方式很少。
顶点着色器是研究中出现的另一种选择,但我又一次不知道如何构建它。
我将不胜感激任何和所有的帮助,我敢肯定,这将是一种对其他 Three.js 用户很有价值的技术。