这更像是一个方法问题,而不仅仅是技术问题。
我有一个生成的球体,分成六边形作为一个网格。每个六边形瓷砖都是不同类型的地形,例如山脉,丘陵,海洋,飞机等。我想将3d中的每个地形类型绘制为一组多个网格,表示相应的地形类型。
现在最大的问题是如何在运行时根据地形类型将地形网格调整到每个六边形面,地形类型也可能在运行期间发生变化,例如变形。同时考虑六边形不完全正规或相等。
底线,我需要拍摄一个网格,表示地形类型,并将其与六边形面完美对齐,表示球形地图上的图块。它甚至可能在three.js中吗?如果是,我应该使用什么技术来实现想要的结果?
提前致谢!
下面的图片:
最大放大
缩小地图
答案 0 :(得分:1)
几年前遇到类似的问题。我还注意到你有另一篇帖子询问same question
你可以纹理每个六边形,假设它们是" Hex-Sphere"的差异面。几何就像你做cube to make a dice
一样hexSphere = new THREE.Mesh(
myHexSphereGeometry,
new THREE.MultiMaterial( materials ) );
scene.add( hexSphere );
作为一种方法,我会这样做,类似于如何使用perlin noise通过将十六进制面部纹理插入到一起使其无缝并且更新 onThange of THREE.MultiMaterial 3}来开发景观STRONG>。在您的其他帖子中,您提到从 Blender 导入网格。这与我的做法正好相反,因为它会导致一系列恶意问题。
对于你来说,我希望你有另一种选择:
希望这有用。
最佳,
Endorox