APP下载

与环境交互的根系动态生长可视化算法

2022-08-08

农业机械学报 2022年7期
关键词:资源分配根茎障碍物

杨 猛 肖 成

(1.北京林业大学信息学院, 北京 100083;2.国家林业和草原局林业智能信息处理工程技术研究中心, 北京 100083)

0 引言

根系能够确保植物水和养分的获取,在植物生长中发挥至关重要的作用。种类繁多的根系是植物应对各种极端环境(如干旱或营养不良)的重要组成[1-2]。由于根系隐藏于地下,缺乏直接观测的技术,因此结合环境的三维根系生长模拟是多类研究的重要工具。

对于根系功能与发育的模拟是包括计算机图形学在内的不同领域的研究热点。在根系建模研究早期,DIGGLE[3]提出根系的拓扑结构与每级拓扑结构下根的特性。文献[4-5]开发了新的根系可视化生长模型,主要在二维平面上模拟了根的产生、轴向与径向生长、分支、衰败与脱落等多种发育过程。随后,根系建模的工作中开始更多的考虑到土壤环境对根系生长产生的影响,文献[6-7]的建模工作中,将向地性、无机盐与水分等各种环境影响引入根系生长,使根系建模拓展成动态的生长过程。在此基础上,SCHNEPF等[8]开发的开源根系建模框架CRootBox,包含了一个能任意耦合环境的接口,用户能够构建更为复杂的土壤环境,并使根系在其影响下进行生长。杨乐等[9]利用微分L-系统实现了根系动态生长模拟可视化,并加入双尺度自动机以连续的方式描述了水稻根系的生长[10],但缺乏与环境的交互过程。

目前根系可视化建模方面的研究专注于根系的架构表达,在根茎细节以及整体形态特征上关注较少,且在三维图形表示方面较为欠缺,根系建模的通用能力较弱。同时根系三维建模要考虑土壤环境的复杂性,如不同种类无机盐的影响效果不同[11]、无机盐分布不均匀[12]与土壤障碍物影响[13]等,本文就此问题提出一种能够与环境合理交互的根系动态生长可视化算法。

1 算法概述

以直根系、须根系和储藏根系作为主要模拟对象(根系特点[14]见表1),并能够使其对诸如重力、水分、养分与障碍物等环境因素做出反馈。该算法包括过程建模与环境交互。算法的主要流程如图1所示。

表1 主要模拟的根系类型与特点Tab.1 Main simulated root system types and characteristics

图1 算法概述Fig.1 Algorithm overview

过程建模确定了组成一个根系的各个分支的生长模式和拓扑结构。考虑了自然生长模式以及几何模型的绘制。环境交互能够使根系在土壤中呈现合理的生长趋势,包括根系的生理特性以及物理特性。

2 过程建模

考虑到根系种类之间的差异与形状的多样,基于上下文相关L-系统[15]的过程建模方法,定义了一种有效描述各种根系结构及其特征的语法,并以此来约束生长过程与根茎之间的拓扑关系。此外,增加了用户对3D模型形状与图形绘制的控制功能,完善了根系细节上的视觉效果。

2.1 语法定义

图2 根系层次结构图Fig.2 Hierarchical structure of a root system

为了控制根系的更多细节,采用一个三元组G来定义一个根系结构

G={A,P,ω}

(1)

式中A——起始字符P——生长规则

ω——初始生长参数,如起始伸长量、半径或随机弯曲值等

A作为该模块的初始字符,使用生长规则P进行迭代,规则表示式为

P→Plc〈m,n,α〉Prc

(2)

式中Plc——一个生长周期产生的结构

Prc——下一个生长周期的结构

m——侧根的模块标识符

n——侧根数量

α——侧根轴向夹角

2.2 可编辑根茎

过程建模方法用于生成根系的拓扑结构与根茎的节间点,但利用这些节间点生成的几何输出由直线构成,不符合实际根系弯曲的特点。因此,在特定的建模情况下,需要指导根茎在3D空间中遵循预定义的曲线生长。例如,用户想要自定义一个根的形状。在细节上,有研究者采用样条曲线表示枝条的弯曲形状[16-18],也有研究者结合草图控制树枝的形状[19-20]。

本文基于这些研究,提出模板曲线的方法,利用单根的轴向方向与模板曲线控制该根的形状。假定一条长度为1的曲线用来表示总长为l的根的形状,根尖从萌发处以萌发方向为轴向方向,在归一化指标为1/l的轴曲线上移动,其中,根尖在任意位置的生长方向都是曲线对应点的曲线斜率。首先由用户指定点集V={p0,p1,…,pm},随后对该点集采用三次样条曲线拟合,公式为

(3)

式中Bj(δ)——pj→pj+1段的拟合曲线

δ——归一化移动距离,0≤δ≤1

一段三次样条需要4个点确定,所以当拟合边界点(j=0或j=m)时,j+i-1最小值为0,最大值为m。这个步骤设置的曲线将用于指导根系内特定模块或者根茎的生长,如图3所示。

图3 模板曲线设置与应用Fig.3 Template curve setting and its application

图4a为图2中的简单直线结构中不同层级的根应用一组模板曲线后生成的结构。此外,根在生长路径中还可以插入一些随机偏移量,将不规则性引入根系的生长过程,以产生自然弯曲的形状,如图4b所示。

图4 简单递归结构的自然弯曲Fig.4 Natural bending of simple recursive structures

2.3 三维几何模型离散表示

为了在细粒度上显示根茎不规则形状的曲率,根茎长度必须足够短,且横切面多边形必须有足够多的边。然而,该过程可能需要大量的运算来计算各个顶点的位置,也需要占用更多的内存来存储这些顶点,这将导致实时动画的帧数降低。为此,增加了2个参数nslice与nside,分别控制输出几何体的曲面与曲线的步长。

如图5所示,随着曲线步长的增加,根茎的曲线曲率精度也会增加,至于茎段顶点圆的边的数量,决定了构成该几何体所需的顶点总数。根茎曲线的曲率精度与顶点圆分片数量的提升导致计算量增大。

图5 分支几何模型曲线步长设置Fig.5 Geometric curve setting of a branch

3 交互算法

根系是由一组具有不同生长状态的根尖进行拓展、分支而来,所以根尖被称为根系生长的引擎。根系与环境交互体现在2处:①根系的发育状况取决于所获取的资源是否丰富,如养分和水分的含量;同时,根系更好的发育又能获取更多的资源,从而进一步生长,包括根尖伸长量的增大与侧根密度的增加。②根系的生长受到环境影响,包括重力影响、水分与养分浓度差或者障碍物阻碍。

为了模拟这些因素对根系生长的影响,本文为根系的每个生长周期构建了3个阶段,首先考虑根尖对资源获取与分配情况,然后计算各个根尖的资源分配量对其生长状态产生的缩放比。最后,根据根尖所在区域的环境信息,计算出对根尖最有利的伸长方向并开始生长。

3.1 养分获取与生长资源分配

土壤中的营养物质分布不均,根系获取的养分在整个植物的生长过程中非常重要。为此,植物可以调节根系在土壤中的生长状态,使根系往养分高的地方觅食[12]。BH模型最初被作为一种内部调控机制提出,而后由PALUBICKI等[21]拓展,该方法通过内部信号机制调节植物在空间或资源上的竞争,从而控制植物茎段的局部几何形状。结合这种方法,本文提出了根系资源分配算法。该算法利用根尖吸收的养分量来指导资源分配。比如控制大部分资源流向轴根或者侧根。

在每个生长周期,根据根系当前的结构与环境信息,再利用根尖吸收到的资源量来引导资源的分配。根尖吸收其所处区域的资源,并在根轴处记录该根的资源吸收总量,再将资源汇入其父根,递归该过程,直到汇入主根的根轴(图6a)。然后根据每个侧根的养分吸收量计算分配的资源量(图6b)。对于一个侧根,其资源分配公式为

图6 根系资源获取与分配(λ0=0.6,λ1=0.55)Fig.6 Root resource acquisition and allocation (λ0=0.6,λ1=0.55)

(4)

式中Dk,i——侧根Lk,i分配到的资源量

IPr——父根的资源吸收量

Ik,i——侧根Lk,i的资源吸收量

λk——k级侧根的资源分配权重,0≤λk≤1

用户可以调节该分配权重来指导资源的流向,主要用于调节不同养分对主根和侧根影响的相对程度。λ0默认值为0.5,表示吸收量与分配量一致,该根生长状态并不受影响,而该权重大于0.5则促进该根发育,反之抑制。比如自然界中有的物种主根强壮,则可将较大分配权重分配给主根;而有的物种侧根发达,则将主根分配权重减小。这也是用户控制根系整体形状的一种方式。

3.2 生长状态计算

在KOEVOETS等[12]的研究中,详细介绍了不同养分的不同含量对根系生长的影响,对根系的生长状态(如伸长量、侧根生长角度与侧根密度等)均有不同程度的影响。以生长规则中所定义的结构作为根系在默认环境中的生长结果,并将水分、各种养分分别看作一种环境因素。为了使得根系能够耦合不同环境条件且呈现出合理的生长变化,提出了一种用于结合多种环境因素的缩放算法。利用根尖所在区域的资源含量与生长资源分配公式来得到根尖的生长资源分配量,进而计算该根尖的生长促进率。

首先,定义环境因素及其缩放函数,由各个根尖的资源分配量作为自变量,来调控根尖的生长状态。缩放函数表示特定根系在特定养分的不同含量下的生长状态,参数可以由用户实际测量后设定。

然后对加入的所有环境因素返回的同一影响类型的缩放值进行求积,返回结果来缩放根尖的状态,大于1呈促进作用,小于1呈抑制作用。公式为

(5)

式中Stype(c)——所有环境因素对生长状态的缩放函数

c——资源浓度

Fi——序号为i的环境因素

Fi∶φtype(c)——环境因素Fi对生长状态的缩放函数

以下将各类缩放值应用于根系中。

(1)单根伸长

只要根系年龄小于根系生存期,单个根就会生长。对于侧根Lk,i,它的默认生长速度是一个特定的负指数生长函数,萌发时刻生长速度继承其父根。在受到环境影响后,生长速度变化公式为

(6)

式中vk,i(t,c)——侧根Lk,i的根尖在t时刻且浓度为c的条件下的生长速度

Sel——环境对伸长量的缩放值

v0——初始生长速度

lmax——单根的最大长度

式(6)表明,除了环境因素影响外,根的伸长速度也是以根的年龄为变量的函数,随着时间增长而减小,直到生长结束。

(2)侧根产生

侧根是在一个根顶端成熟后形成的分支区域内产生的。在分支区域内,将创建规则中指定的侧根量,同时遵循着规则中描述的拓扑结构。受到环境影响后,侧根与父根的轴向与径向旋转角公式为

α′=Sangα

(7)

(8)

式中α′——受环境影响后的轴向旋转角

α——受环境影响前的轴向旋转角

i——侧根序号

βi——序号为i的侧根受环境影响后的径向旋转角

Sang——环境对侧根轴向夹角的缩放值

Sbr——环境对侧根数量的缩放值

nbr——受环境影响前的侧根数量

3.3 生长方向计算

环境除了影响根系的生长状态外,也会由于根尖周围环境的差异对生长方向进行调整。首先是向性,指根系的某一根尖朝向某一方向或者远离某一方向的趋势。再者就是障碍物,根在生长过程中不断进行碰撞检测,当与障碍物发生碰撞时,调整根尖生长方向。

(1)向性

常见的向性包括向地性、向水性与向化学性。向地性固定,总是驱使根尖向下生长,向水性与向化学性类似,考虑土壤中水分浓度不同,在根尖感知到周围环境后趋向浓度高的方向生长。

假设环境中产生的每个向性均为根尖提供一个生长方向的偏移,而这些偏移结合后产生最终的方向偏移。作用于根尖的所有向性汇总后得到新的生长方向d,计算公式为

(9)

式中d0——受环境影响前的生长方向

ws——根系自身方向的权重

τi——序号为i的向性

wi——τi的权重

根尖受影响前的生长方向,取决于给定的分支角与根尖萌发位置,而其他向性与其权重乘积后求和汇总得到环境因素的干扰方向,并且∑wi<1,如图7所示。此外,向性权重也是用户控制根茎形状的一种方法。

图7 由多种向性以及障碍物影响的生长Fig.7 Growth affected by tropisms and obstacles

(2)障碍物

在每个生长周期开始时,假设根尖可以生长到之前步骤中计算的新位置。在实际的几何图形被绘制之前,检查这段新生的根是否与环境中存在的几何体发生了碰撞。首先快速检测这段根茎的OBB包围盒是否发生碰撞。如果发生碰撞,将该根尖状态标记为“碰撞中”,而后在每个时间步长中动态调整根茎的方向。图7中,以pi为起点,在时间步长Δt后在pi+1处与障碍物发生碰撞。这时,将pi+1绕pi旋转,碰撞处理后的新根尖位置公式为

ROpi+1=RO+rpi+1

(10)

式中ROpi+1——障碍物中心到新根尖位置的距离

RO——障碍物中心到交互点的距离

rpi+1——根茎在pi+1处的最大半径

式(10)的目的是在障碍物表面寻找一个点,该点刚好与根茎相切,并且满足调整后的根茎长度与调整前一致。

4 实验与结果分析

采用WebGL进行渲染。所有例子都是在处理器i7-9700 3.00 GHz,16 GB内存,图形显卡为UHD Graphics 630的实验环境下完成。

实验首先分析提出的算法能否以简单有效的方式模拟自然界中各类常见植物的根系,并验证该可视化算法在多组细节精度上的建模效率。最后验证模拟的根系能否与环境发生合理的动态响应,包括根系对养分的响应以及在2种障碍形式下的表现。

重要参数描述以及设置如表2所示。用户可以为不同植物的根系设定不同的参数,如长度、半径与生长偏移量来控制根系模型的形态,通过设定不同的资源分配权重与向性的权重来调节根系受环境的影响程度。

表2 主要参数Tab.2 Main parameters

首先,测试了不同细节精度的三维根系的生长模拟动画效率,如图8所示,在3种不同分辨率下生成了具有相同生长步长的根系模型,该模型最终产生的侧根数量为344。表3给出了每个分辨率的效率结果。分别测定了每个分辨率根系模型生长动画的速度(f/s)与最终模型占用存储空间。高精度下以平均速度48 f/s生成虚拟根系,验证了实时生长的动画效率。

图8 不同分辨率的根系模型Fig.8 Root models with different resolutions

表3 不同细节精度下的渲染速度Tab.3 Rendering speed at different detail accuracies

实验中的参数设定如表4所示,由于本文主要研究通用性的可视化模拟算法,所以实验中与根系相关的参数,如最大伸长量、主根半径、生长速度与生长偏移量等数值设置均为经验数据,同时从一定程度上考虑了视觉效果。

表4 实验图中的参数设置Tab.4 Parameter settings in experimental diagram

在图9中,分别模拟了直根系、须根系与储藏根系3种类型根系的生长。使用几行简单的规则很容易生成各类根系模型,通过调节少量参数与设定模板曲线(图9c),可以产生预期的根茎形状。由于在生成过程中应用了随机生长偏移量,很容易形成具有自然弯曲效果的仿真模型。

图9 不同种类根系的模拟结果Fig.9 Simulation results of different kinds of root systems

随后,以向日葵为例,其根系是由一组简单生长规则描述的直根系类型。图10a为一个传统过程建模结果,其自然弯曲和根茎形状可以由用户设定少量可调整参数即可实现。而需要对该模型的其他方面改变时,必须重新设定复杂的规则[22]或者更改大量参数[6,8]。相比之下,本文的算法提供了对侧根密度、伸长量与生长趋势的自动控制。只需要设定环境资源分布参数与资源分配权重,即可得到不同的生长结果。

为了证明该算法的有效性,首先为环境加入重力因素。随后,分别模拟了自然界中氮元素与磷元素在土壤中的分布,结合资源分配公式与向性算法,生成结果如图10b、10c所示。其中,将适量浓度设定为0,即不对根系产生影响,而正值表示促进,负值表示抑制。营养物质的分布是不均匀的,往往具有很强的垂直分布特点[12]。磷酸盐容易在土壤表层积累[23],图10b模拟了这一分布,为了获得更多的磷酸盐,将侧根的权重λ1设置为0.7,这将有利于浅层侧根更高的伸长量与更高的侧根密度;此外,由于养分浓度差,根系呈现出向上生长的趋势。氮元素具有高流动性,往往渗透到了更深的土壤中。主根的资源分配权重λ0设为0.65,这将有利于根系深入土壤,图10c模拟了这种分布状况,所以呈现主根伸长量增加,浅层侧根密度与伸长量降低的特点。除此之外,图10d模拟了不规则的水分分布。受水源影响的根呈现明显的向水性,由于左侧的侧根吸收到的资源非常低,所以生长受到抑制。

图10 根系在不同环境下的生长模拟结果Fig.10 Simulation results of root growth in different environments

根系与石块的交互和根系在盆中的生长模拟如图11所示。由图11a、11b可知,根系能够与不同的土壤障碍物贴合生长;由图11c、11d可知,根系能够沿着盆壁生长。验证了根系能够在复杂环境中合理生长。

图11 根系与障碍物的交互结果Fig.11 Results of root interaction with obstacles

虽然该可视化算法对根系的形态结构与生长过程具有较好的模拟效果,但自然界中存在一些具有特殊形态的根系,比如板根、寄生根、支柱根等,这些根系目前还不能够模拟。另外,在环境方面只考虑了对植物影响较大的一些常见非生物因素,如水分、养分、重力与障碍物等,暂未考虑沙漠、盐碱地、极地等不适合植物生长的环境条件。例如适应干旱环境的仙人掌根系,即使处于缺水环境,根系仍能够在浅层土壤中大范围生长。

5 结束语

提出了一种根系与环境交互的动态生长可视化算法,该算法目的是构建仿真的三维根系模型。首先基于规则构建根系的拓扑结构与空间关键点的信息,随后结合环境参数,根据根系自身特性计算这些内外因素在根系生长过程中产生的影响,最后生成具有动态生长效果的三维根系模型。此外,为用户提供了多种控制根系形态的手段,根系形态包括根茎细节形状与根系整体形态。分析结果表明,该算法可以为多类植物根系进行生长模拟,针对环境中资源分布、向性、障碍物等对根系的影响有较好的模拟效果。

猜你喜欢

资源分配根茎障碍物
蓝玉簪龙胆
从狗尾巴草到蝈蝈笼
新研究揭示新冠疫情对资源分配的影响 精读
高低翻越
赶飞机
月亮为什么会有圆缺
基于动态规划理论的特种设备检验资源分配研究
基于动态规划理论的特种设备检验资源分配研究
云环境下公平性优化的资源分配方法
水族常用根茎类植物药