如何最好地实现、存储和渲染球形世界,例如Spore或Infinity中的世界,但没有Spore中的中间阶段,以及Infinity Universe中的多个世界。不要对行星本身的生成方式或其大小/比例进行任何假设。
如何最好地实现、存储和渲染球形世界,例如Spore或Infinity中的世界,但没有Spore中的中间阶段,以及Infinity Universe中的多个世界。不要对行星本身的生成方式或其大小/比例进行任何假设。
这可能不是你想要的... 但没关系,这是一个好故事。
很久以前,当恐龙仍然漫游在地球上,记忆还用千字节来衡量时,我玩了一些软件来分形地生成行星。
我的想法是创建一个2NxN的矩形来代表这个行星。将行星切成许多半,每次都稍微移动两半。(对于切割使用正弦波,带有随机相位和振幅。另一个随机正弦波用于移动。)之后,将低水平区域淹没在水中,并按高度颜色编码其余部分。
然后,在顶部放置直径为N的球体,并投影,将地图的NxN区域包裹在球体的一半周围。将球体移到地图上并看起来像它正在旋转。