我正在制作一个世界生成器,它将使用perlin噪声和加权梯度生成地形,从而有利于形成Pangea形状的岛。我已经到了可以创建世界温度地图的地步,在这里,靠近赤道的较低海拔高度受到青睐,而水总是较冷。但是我很难找到应对风雨的最佳方法。我认为我可以创建湿度图,然后以某种方式将其播放到风中。 This video是我大部分灵感的来源。在其他地方,他简短地谈到了每当风吹到山上时,山后的区域就不会下雨。关于他的风,我有一个大问题是他如何决定风向。
因此,基本上,我要问的是如何扩展世界发电机来模拟风,雨和天气?既然雨水和天气可以说是一回事,那么出现的另一个问题是如何基于世界生成湿度图?模拟开始后,如何处理天气?
这是我的温度图的图片。我正在考虑使其不那么连续。
最佳答案
我是您在问题中链接到的视频的作者。
很抱歉,三个月前您没有提出要求时,我没有回复,但我只是在Reddit上看到了您的消息。您的帐户似乎已被删除,因此我在这里复制我的回复。
就风向而言,这只是一个简单的模型,所以我作弊并随机选择了一个角度。我正在研究随着风和天气的变化而“演变”的模拟,但是最大的问题是使其足够快地使用。
对于风雨,我所做的是模拟一个正方形的粒子,每个粒子相隔一个像素,并实现为用于风向提升的浮子阵列和用于风湿的一系列浮子。开始时的风湿设置得很高,以表示它是潮湿的空气在海上传播的事实。
然后,我将风云沿地图移动。当地图的标高(高度)大于风高时,风高将上升到该标高。否则,风的高度会缓慢减小。当世界的标高远小于风的标高时,此简单模型可以用作非常简单的气压近似值。我的视频将原始风标高设为蓝色,但您可以为葡萄酒标高和土地标高之间的差异着色,以得到更有趣的效果。
根据温度的不同,云中的每个点在每一步都会损失一些水分(寒冷的地区会损失更多的雨水,特别是在山区)。一旦失去了所有的水分,就没有雨了,因此会形成“雨影”,如果温度很高,则以沙漠为代表。您可以通过使风在湖泊或海洋上吸收更多的水分来改进此模型。
找出风能粒子快速失去水分或最初吸收多少水分的最佳常数,只是反复试验,直到我发现一个看起来不错的组合并在典型地图上为我提供了完整的地形类型。
希望对您有所帮助-祝您项目顺利!让我知道你是怎么办的。
关于java - map 生成-雨,风和天气,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16996524/