首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Voronoi图与Perlin噪声相结合以生成纹理的“正确”方法是什么?

将Voronoi图与Perlin噪声相结合以生成纹理的“正确”方法是什么?
EN

Stack Overflow用户
提问于 2019-03-27 23:08:28
回答 2查看 2.3K关注 0票数 2

我正在做一个围绕程序地形生成的项目。我目前有两个独立的部分,一个是生成我的Voronoi图,另一个是处理整个地形的生成。地形目前是以块的形式生成的,因为它太大了,不能单独生成。由我的Voronoi算法生成的多边形在大小上接近于单一地形块。我希望为每个多边形生成一个单独的块,因为我希望生成的多边形确定Perlin噪声值。在当前的实现中,我的地形块具有正方形的形式,因此我不能真正插入多边形。你会怎么做呢?

我最初试图让我的纹理成为一个多边形形状,但它的纹理在统一的宽度和高度,嗯,所以这不是很好的工作。我还考虑将每一块地形分成一组具有相同属性的多边形,这将破坏使用Voronoi的整个目的。

我很乐意包括我的代码,但我不认为它在这种情况下有什么特别的价值。

注意:我的Voronoi实现返回一个多边形对象列表,其中包含相应的角点、边、质心等。

提前感谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-28 05:41:58

大多数时候,当我在地形生成中看到Voronoi算法时,它们是在运行时应用于纹理的。然后,可以将其他类型的噪波添加/相乘/等添加到该纹理,以创建程序地形的高度贴图。

如果您的Voronoi算法已经生成几何体,一种选择是为您的地形制作一个着色器,该着色器在世界空间坐标中对Perlin噪波进行采样(这样,您就不会在多边形网格上遇到任何平铺问题)。如果要将噪波用作高度贴图,则细分可以提高网格分辨率。但是,如果您以前没有使用过着色器,则使用纹理方法可能会更快地看到结果。如果在C#中执行一半的地形噪波,那么在着色器中执行一半的地形噪波也没有多大意义。

由于这个主题可以变得相当广泛,我强烈推荐Sebastian Lague关于地形生成的视频。https://www.youtube.com/watch?v=wbpMiKiSKm8&list=PLFt_AvWsXl0eBW2EiBtl_sxmDtSgZBxB3

票数 1
EN

Stack Overflow用户

发布于 2019-03-27 23:46:59

为什么你想要你的地形瓦片多边形形状?如果我理解正确的话,你不希望你的地形瓦片是正方形的,而是用voronoi算法生成的多边形。实际上,没有人会这样做。地形瓦片始终是基于虚拟网格和玩家位置创建和删除的方块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55380507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档