对于一个项目,我正在 3D 空间中创建行星,基于一个中心“家园”,这些行星是从原点向各个方向随机生成的。
我看过程序生成和 Perlin 噪音,但我找不到合适的方法让它们适用,但我对任何类型的随机生成都是新手。
3D 点生成算法的任何良好起点,以原点为中心,最好基于种子(因此相同的种子产生相同的宇宙)。
谢谢!
对于一个项目,我正在 3D 空间中创建行星,基于一个中心“家园”,这些行星是从原点向各个方向随机生成的。
我看过程序生成和 Perlin 噪音,但我找不到合适的方法让它们适用,但我对任何类型的随机生成都是新手。
3D 点生成算法的任何良好起点,以原点为中心,最好基于种子(因此相同的种子产生相同的宇宙)。
谢谢!
尝试使用一组不同的随机数,而不是尝试使用特定算法使用单个种子来执行此操作。
first one is 1-360 is the rotation around the y axis
second one is 1-180 is the deviation from the y axis (wobble)
third one is 1-<really big number> is the distance from your centre point (homeworld)
fourth (optional) one is to randomize the radius of the planet
fifth (optional) is to randomize the colour of the object
要绘制您的星球,只需一些简单的三角函数即可从您的原点(家乡)计算出 3d 空间(x,y,z)中的位置。
只要您的每个种子值相同,您就可以生成一个非常大的行星空间。
如果您想使用单个种子执行此操作,则使用该种子为所有后续随机数生成器生成“随机”种子数。
在加载此页面所需的很长时间内,我有一个想法,但我还没有看到它。
你可以从一个四面体开始,然后,对于指定的迭代次数,
对于完全均匀的随机数分布,这应该近似于一个球体。使用确定性 PRNG,结果应该可以通过使用相同的初始种子来重现。