对于一个项目,我正在三维空间中创建行星,基于一个中心"家园",这些行星从原点向各个方向随机生成。
我研究过程序生成和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
要绘制你的行星,只需要一些简单的三角法就可以从你的原点(家园)计算出三维空间(x,y,z)中的位置。
只要你的每一个种子值都相同,你就能够产生一个非常大的行星空间。
如果要使用单个种子执行此操作,请使用该种子为所有后续随机数生成器生成"随机"种子数。
在加载这个页面花费了很长时间之后,我有了一个想法,但我还没有看到它的表现。
你可以从四面体开始,然后,对于指定的迭代次数,
- 随机选择一个三角形面
- 用一个新的四面体代替这个面
对于完全均匀的随机数分布,这应该近似于球体。对于确定性PRNG,通过使用相同的初始种子,结果应该是可重复的。