gpt4 book ai didi

algorithm - 我可以使用 3 维单纯形噪声实现在球面上生成噪声吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:57 26 4
gpt4 key购买 nike

比如说,我想在一个球体上产生噪声。

我想通过程序生成三维“ Blob ”。并使用这些 blob 生成低多边形树,有点像这样:

enter image description here

我可以按如下方式完成吗?

  • 首先定义一个由一定数量的顶点组成的球体,每个顶点由已知的 (x,y,z) 坐标定义
  • 然后生成一个额外的熵(或噪声)值e如下:

    var e = simplex.noise3d(x,y,z)

  • 然后使用 scalar multiplication通过熵值 e 将原始点偏移或拉伸(stretch)到 3D 空间中:

    point.position.multiplyScalar(e)

  • 然后最终从这些新计算的偏移点重建一个新的网格。

我能否定义一个由一定数量的顶点组成的球体,每个顶点都由已知的 (x,y,z) 坐标定义,然后生成一个熵值或噪声值

我考虑这种方法是因为它被广泛用于在二维平面上使用二维噪声生成地形网格,从而产生三维平面:

two-dimensional noise example

看例子我理解使用二维噪声生成地形的概念如下:

  • 您定义一个二维点网格,本质上是一个平面。因此,每个点都有两个已知坐标,并在三维空间中定义为 ( X, Y = 0, Z )。在这种情况下,Y 表示将由噪声发生器计算的高度。

  • 您将网格中每个点的 X 和 Z 坐标提供给 Simplex 噪声发生器,该发生器返回噪声值 Y。

    var point.y = simplex.noise2d(x, z);

  • 现在我们的点网格已经在三维空间的 Y 轴上发生位移,我们可以从中创建一个看起来很自然的地形网格。

我可以使用相同的方法在球面上使用三维噪声生成噪声吗?这是个好主意吗?还有更简单的方法吗?

我正在 WebGL 和 Three.js 中实现它。

最佳答案

如果你想让东西看起来像一棵树,你应该使用树生长算法首先模拟树的分支模式,然后 poly 树的外表面。不同类型的树木具有决定它们如何生长的所谓“习性”或手性模式。一篇描述了一些用于模拟 Twig /树叶生长的基本方程的论文是:

http://www.math.washington.edu/~morrow/mcm/16647.pdf

关于algorithm - 我可以使用 3 维单纯形噪声实现在球面上生成噪声吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com