影响植物生长的因素:
海拔:海平面以上的高度。随着海拔的升高,环境会变得更加恶劣。所有的植物都有一个生存的高度上限。植物也会随着海拔的升高而变小。
相对高程:指高度的局部变化,负值表示山谷,正值表示山脊。山谷通常更潮湿,也更隐蔽。山脊则更容易暴露在自然环境中。不同植物有不同的喜好。
坡度:地形的坡度直接关系到土壤的肥沃程度以及保水性。陡坡往往有小灌木和草覆盖。非常陡峭的斜坡往往是裸露的岩石,没有植被。
坡面朝向:坡面的方向决定它在每一天接收多少个小时的日光。被山体遮蔽或暴露在风中。
一些植物和生态系统也表现出与上述4个变量无关的行为。其一是生殖行为,掉籽或根部发达的植物往往表现出很强的群体行为。可以使用分形噪声函数去影响生态系统的相关概率及植物的密度分布,来模拟这种行为。
采用四叉树结构进行分层解算,每层都计算一种特定类型,最后进行互相影响
TileSize越小,对应的种类分布复杂度越高,比如:小型植物
而TileSize大的,可能一整个区域分布都差不多
生态系统中的每一层都包含以下各项:
1.代表典型地表覆盖物的纹理。这用于构建渲染时覆盖在地形上的纹理。比如草纹理。
2.该生态系统中可能存在的目标清单。这包括:
-对象的类型(也可以定义像岩石这样的物体,只要它们具有自然分布)
-物体密度,与噪声一起使用用于确定特定区域中的对象数。
-尺寸和颜色变化信息。这用于生成对象外观的变化,在使用广告牌渲染树时尤其有用。
3.下一层上所有可能的层的列表,见下。
生态系统是由可能的生态层组成的,每一层定义下一层的所有可能性。虽然草原上根本没有树,但部分草地繁茂地区也可能有。由于对阳光的竞争,有许多植物的层下面会有稀疏的层,而很少有植物的层下面会有更密集的层。
一种可能的层级关系
计算坡度:
计算完后要归一化
坡度变化率:
反应主要阳光照射量、降雨量和风量等条件
skewX,Y分别为slope在xy上的变化量
这个变量用来干扰高度图,不会直接参与最终计算。坡度变化率高对植物的影响其实相当于高海拔条件。
综合计算生成权重
每个生态层都有针对海拔,相对海拔,坡度的最大,最小,平滑值。去决定生成率。
最大,最小边界处生成率为0.5
AVS (最大+最小)/2
Range (最大-最小)/2
当value恰好位于中间时,X为0。最大值和最小值处为1
生成率W计算:S为边界平滑度
测试用例:
上图左展示了生成的放置图
ref:Modeling of ecosystems as a data source for real-time terrain rendering
作者:风和雨林
专栏地址:https://zhuanlan.zhihu.com/p/90199995