我可以使用 3 维单纯形噪声实现在球面上生成噪声吗?
Can I use a 3-dimensional simplex noise implementation to generate noise over a spherical surface?
比如说,我想在一个球体上产生噪声。
我想通过程序生成三维 'blobs'。并使用这些斑点生成低多边形树,有点像这样:
我可以按如下方式完成吗?
- 首先定义一个由一定数量的顶点组成的球体,每个顶点由已知的 (x,y,z) 坐标定义
然后生成一个额外的熵(或噪声)值e如下:
var e = simplex.noise3d(x,y,z)
然后用scalar multiplication偏移,或者把原点拉伸成3Dspace,熵值e:
point.position.multiplyScalar(e)
然后最终从这些新计算的偏移点重建一个新的网格。
我可以定义一个由一定数量的顶点组成的球体,每个顶点都由已知的 (x,y,z) 坐标定义,然后生成熵或噪声值
我考虑这种方法是因为它被广泛用于在二维平面上使用二维噪声生成地形网格,从而产生三维平面:
查看示例,我理解使用二维噪声生成地形的概念如下:
您定义了一个二维点网格,本质上是一个平面。因此,每个点都有两个已知坐标,并在三维 space 中定义为 ( X, Y = 0, Z )。在这种情况下,Y 表示将由噪声发生器计算的高度。
您将网格中每个点的 X 和 Z 坐标提供给 Simplex 噪声发生器,即 returns 噪声值 Y。
var point.y = simplex.noise2d(x, z);
现在我们的点网格已经在我们的三维 space 的 Y 轴上移动,我们可以从它们创建一个看起来自然的地形网格。
我可以使用相同的方法在球面上使用三维噪声生成噪声吗?这是个好主意吗?还有更简单的方法吗?
我正在 WebGL 和 Three.js 中实现它。
如果你想让东西看起来像一棵树,你应该使用树生长算法首先模拟树的分支模式,然后 poly 树的外表面。不同类型的树木具有所谓的 "habits" 或手性模式,这些模式决定了它们的生长方式。一篇描述用于建模 branch/leaf grown 的一些基本方程式的论文是:
比如说,我想在一个球体上产生噪声。
我想通过程序生成三维 'blobs'。并使用这些斑点生成低多边形树,有点像这样:
我可以按如下方式完成吗?
- 首先定义一个由一定数量的顶点组成的球体,每个顶点由已知的 (x,y,z) 坐标定义
然后生成一个额外的熵(或噪声)值e如下:
var e = simplex.noise3d(x,y,z)
然后用scalar multiplication偏移,或者把原点拉伸成3Dspace,熵值e:
point.position.multiplyScalar(e)
然后最终从这些新计算的偏移点重建一个新的网格。
我可以定义一个由一定数量的顶点组成的球体,每个顶点都由已知的 (x,y,z) 坐标定义,然后生成熵或噪声值
我考虑这种方法是因为它被广泛用于在二维平面上使用二维噪声生成地形网格,从而产生三维平面:
查看示例,我理解使用二维噪声生成地形的概念如下:
您定义了一个二维点网格,本质上是一个平面。因此,每个点都有两个已知坐标,并在三维 space 中定义为 ( X, Y = 0, Z )。在这种情况下,Y 表示将由噪声发生器计算的高度。
您将网格中每个点的 X 和 Z 坐标提供给 Simplex 噪声发生器,即 returns 噪声值 Y。
var point.y = simplex.noise2d(x, z);
现在我们的点网格已经在我们的三维 space 的 Y 轴上移动,我们可以从它们创建一个看起来自然的地形网格。
我可以使用相同的方法在球面上使用三维噪声生成噪声吗?这是个好主意吗?还有更简单的方法吗?
我正在 WebGL 和 Three.js 中实现它。
如果你想让东西看起来像一棵树,你应该使用树生长算法首先模拟树的分支模式,然后 poly 树的外表面。不同类型的树木具有所谓的 "habits" 或手性模式,这些模式决定了它们的生长方式。一篇描述用于建模 branch/leaf grown 的一些基本方程式的论文是: