当前位置: 首页 > 知识库问答 >
问题:

球面六边形网格图上的Three.js纹理地形

益泰平
2023-03-14

这更多的是一个方法问题,而不仅仅是技术问题。

我有一个生成的球体,分解成六边形作为一个网格。每一个六边形瓷砖都是一种不同的地形,例如,山,丘陵,海洋,飞机等。我想在3D中把每一种地形类型画成几个网格的集合,代表一种相应的地形类型。

现在最大的问题是如何在运行时将地形网格调整到每个六边形面,这取决于地形类型,在运行时地形类型也会发生变化,例如,地形变形。同时,考虑到六边形并不是完全正则或相等的。

缩小地图

共有1个答案

徐绪
2023-03-14

几年前遇到过类似的问题。我还注意到你有另一个帖子问同样的问题

>

  • 假设每个六边形是“六角球”几何的不同面,你可以唯一地织构它们,就像你做立方体做骰子一样

    hexSphere = new THREE.Mesh(
    myHexSphereGeometry,
    new THREE.MultiMaterial( materials ) );
    scene.add( hexSphere );
    

    作为一种方法,我会做类似的,你将如何开发景观使用佩林噪声,通过插值你的十六进制脸纹理在一起,使其无缝,只是让它在三个变化中更新。多材料。在你的另一篇文章中,你提到了从搅拌机中导入你的网格。这与我所做的相反,因为它会导致一系列恶意问题。

      null

  •  类似资料:
    • 我以前做了几个实验,以找到绘制大规模六边形网格的最佳方法。 我尝试使用、绘制hexes。它在小网格中工作得很好,但如果我在一个网格中有超过1000+的单元格,fps就开始很难下降。 所以我想出了这个想法,将纹理(包含六边形网格模式)应用到一个简单的平面上。我只需要设置纹理的函数来指定垂直和水平执行多少次重复。

    • 目标 我试图建立一个应用程序,其中整个世界地图分裂成大量的六边形。这些六边形一旦生成,就会覆盖地图上的相同区域。然后,给定某些地理坐标,如果这些坐标位于地图的边界内,就会在地图上绘制出一个六边形。这些六边形需要非常小,每边大约。5000万--这提出了主要问题。 第一次尝试 然而,这将产生非常倾斜的六边形,这导致我相信试图为整个世界生成十六进制网格通常是一个坏主意。 乐观计算 我的最后一次尝试是在地

    • 我要做的是找出在一个六角网格上,两点之间有多少个六边形。我试着在网上搜索一个公式,但我无法找到一个匹配类型的十六进制网格我正在使用。

    • 我似乎在绘制正确的十六进制网格时遇到了一点麻烦: 正如您所看到的,六边形只是稍微不对齐,尽管我相信我的数学是正确的(其中一些可以通过http://www.redblobgames.com/grids/hexagons/进行验证)。 我的绘制方法是从左上六边形(第一行的第一个瓷砖)开始,绘制那一行瓷砖。然后对于下一行,有一个负X偏移量和正Y偏移量等,直到它到达中间行,在中间行X偏移量增加,直到0:

    • 我被一个似乎很容易解决的问题所困扰,但我似乎找不出正确的公式。 我有一个立方体坐标系中六边形群的列表。我知道群的立方体坐标,但我需要计算给定群中一个小六边形的“全局”坐标。 例如,在下图中,我知道和的坐标。如果每个组都有相同的半径(在本例中半径为1),并且它们之间不重叠(让我们把它看作是从0、0、0开始的组的平铺,从而创建一个十六进制网格),那么我如何计算GroupB中心平铺的坐标呢? 任何帮助都

    • 我有一个六边形网格,就像图中的一样,我试图找到最简单的方法(也许是一个公式)来计算这个网格内两个六边形之间的距离。当然,我的网格的大小比这更大,但是当我们计算规则网格(有水平和垂直轴)中两个节点之间的距离时,我试图找到一个类似于欧几里得距离公式的公式。 我读了一些方法,但他们都说Y轴应该是60度,然后他们提供了一些公式(六角网格中瓷砖之间的曼哈顿距离)。是否有一种方法来计算距离使用“坐标系”相同,