跨 Godot 版本的确定性 OpenSimplexNoise
Deterministic OpenSimplexNoise across Godot versions
对于给定版本的 Godot,您可以使用 seed
(documentation)确定性地生成 OpenSimplexNoise
。
然而,在 documentation for RandomNumberGenerator
中有以下内容:
Note: The underlying algorithm is an implementation detail. As a
result, it should not be depended upon for reproducible random streams
across Godot versions.
描述了上述问题的一些解决方法here,简短的回答是编写一个自定义的便携式 RNG。
有没有办法为 OpenSimplexNoise
插入自定义 RNG 来管理确定性?还有其他解决方案吗?
Godot 开发人员警告您,他们可能会决定更改 RandomNumberGenerator
以用于将来的版本(并且已经发生了一些更改)。
不,您不能为 OpenSimplexNoise
.
插入自定义随机数生成器
总之,OpenSimplexNoise
不使用RandomNumberGenerator
或rand
。相反,它将此库作为 git 模块:smcameron/open-simplex-noise-in-c.
OpenSimplexNoise
有变化吗?很少。然而,Godot 4 和 3.4 在 OpenSimplexNoise
中有一个重大变化:轴已被交换(这是一个修复)。
所以这导致我们添加自定义噪声解决方案。这可能是 C# 或 GDScript 的 OpenSimplex 噪声端口。
参见 open-simplex-noise.c from Godot source and digitalshadow/OpenSimplexNoise.cs(这是 C# 的端口,评论中也链接了一些其他端口)。
对于纹理,有几个选项:
- 您可以创建一个绘制图像的脚本(我建议使用 lockbits)并进行设置。
- 或者您可以扩展 Viewport(包括向场景添加 Viewport 并附加脚本)。然后你利用
ViewportTexture
,你可以利用着色器来创建你想要的纹理。以BastiaanOlij/godot-noise-texture-asset为参考。
对于给定版本的 Godot,您可以使用 seed
(documentation)确定性地生成 OpenSimplexNoise
。
然而,在 documentation for RandomNumberGenerator
中有以下内容:
Note: The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions.
描述了上述问题的一些解决方法here,简短的回答是编写一个自定义的便携式 RNG。
有没有办法为 OpenSimplexNoise
插入自定义 RNG 来管理确定性?还有其他解决方案吗?
Godot 开发人员警告您,他们可能会决定更改 RandomNumberGenerator
以用于将来的版本(并且已经发生了一些更改)。
不,您不能为 OpenSimplexNoise
.
总之,OpenSimplexNoise
不使用RandomNumberGenerator
或rand
。相反,它将此库作为 git 模块:smcameron/open-simplex-noise-in-c.
OpenSimplexNoise
有变化吗?很少。然而,Godot 4 和 3.4 在 OpenSimplexNoise
中有一个重大变化:轴已被交换(这是一个修复)。
所以这导致我们添加自定义噪声解决方案。这可能是 C# 或 GDScript 的 OpenSimplex 噪声端口。
参见 open-simplex-noise.c from Godot source and digitalshadow/OpenSimplexNoise.cs(这是 C# 的端口,评论中也链接了一些其他端口)。
对于纹理,有几个选项:
- 您可以创建一个绘制图像的脚本(我建议使用 lockbits)并进行设置。
- 或者您可以扩展 Viewport(包括向场景添加 Viewport 并附加脚本)。然后你利用
ViewportTexture
,你可以利用着色器来创建你想要的纹理。以BastiaanOlij/godot-noise-texture-asset为参考。