相关疑难解决方法(0)

用于程序内容的快速伪随机数生成器

我正在寻找一个伪随机数生成器,它可以专门在生成每个数字之前给定种子时快速工作.到目前为止,我见过的大多数生成器都假设您设置一次种子,然后生成一长串数字.到目前为止看起来与我见过的唯一相似的是Perlin Noise,但它产生了太"平滑"的数据 - 对于类似的输入,它往往会产生类似的结果.

生成器的声明应该类似于:

int RandomNumber1(int seed);
Run Code Online (Sandbox Code Playgroud)

要么:

int RandomNumber3(int seedX, int seedY, int seedZ);
Run Code Online (Sandbox Code Playgroud)

我认为拥有良好的RandomNumber1应该足够了,因为可以通过散列其输入并将结果传递给RandomNumber1来实现RandomNumber3,但是我编写了第二个原型,以防某些实现可以使用独立输入.

该生成器的预期用途是将其用于程序内容生成器,例如通过将树放置在网格中来生成森林,并确定每个位置的随机树种和随机空间偏移.

生成器需要非常高效(低于500个CPU周期),因为在渲染过程中会实时大量创建过程内容.

c++ random x86

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×1

random ×1

x86 ×1