楊 猛 肖 成
(1.北京林業大學信息學院, 北京 100083;2.國家林業和草原局林業智能信息處理工程技術研究中心, 北京 100083)
根系能夠確保植物水和養分的獲取,在植物生長中發揮至關重要的作用。種類繁多的根系是植物應對各種極端環境(如干旱或營養不良)的重要組成[1-2]。由于根系隱藏于地下,缺乏直接觀測的技術,因此結合環境的三維根系生長模擬是多類研究的重要工具。
對于根系功能與發育的模擬是包括計算機圖形學在內的不同領域的研究熱點。在根系建模研究早期,DIGGLE[3]提出根系的拓撲結構與每級拓撲結構下根的特性。文獻[4-5]開發了新的根系可視化生長模型,主要在二維平面上模擬了根的產生、軸向與徑向生長、分支、衰敗與脫落等多種發育過程。隨后,根系建模的工作中開始更多的考慮到土壤環境對根系生長產生的影響,文獻[6-7]的建模工作中,將向地性、無機鹽與水分等各種環境影響引入根系生長,使根系建模拓展成動態的生長過程。在此基礎上,SCHNEPF等[8]開發的開源根系建模框架CRootBox,包含了一個能任意耦合環境的接口,用戶能夠構建更為復雜的土壤環境,并使根系在其影響下進行生長。楊樂等[9]利用微分L-系統實現了根系動態生長模擬可視化,并加入雙尺度自動機以連續的方式描述了水稻根系的生長[10],但缺乏與環境的交互過程。
目前根系可視化建模方面的研究專注于根系的架構表達,在根莖細節以及整體形態特征上關注較少,且在三維圖形表示方面較為欠缺,根系建模的通用能力較弱。同時根系三維建模要考慮土壤環境的復雜性,如不同種類無機鹽的影響效果不同[11]、無機鹽分布不均勻[12]與土壤障礙物影響[13]等,本文就此問題提出一種能夠與環境合理交互的根系動態生長可視化算法。
以直根系、須根系和儲藏根系作為主要模擬對象(根系特點[14]見表1),并能夠使其對諸如重力、水分、養分與障礙物等環境因素做出反饋。該算法包括過程建模與環境交互。算法的主要流程如圖1所示。

表1 主要模擬的根系類型與特點Tab.1 Main simulated root system types and characteristics

圖1 算法概述Fig.1 Algorithm overview
過程建模確定了組成一個根系的各個分支的生長模式和拓撲結構。考慮了自然生長模式以及幾何模型的繪制。環境交互能夠使根系在土壤中呈現合理的生長趨勢,包括根系的生理特性以及物理特性。
考慮到根系種類之間的差異與形狀的多樣,基于上下文相關L-系統[15]的過程建模方法,定義了一種有效描述各種根系結構及其特征的語法,并以此來約束生長過程與根莖之間的拓撲關系。此外,增加了用戶對3D模型形狀與圖形繪制的控制功能,完善了根系細節上的視覺效果。


圖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——側根數量
α——側根軸向夾角

過程建模方法用于生成根系的拓撲結構與根莖的節間點,但利用這些節間點生成的幾何輸出由直線構成,不符合實際根系彎曲的特點。因此,在特定的建模情況下,需要指導根莖在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個參數nslice與nside,分別控制輸出幾何體的曲面與曲線的步長。
如圖5所示,隨著曲線步長的增加,根莖的曲線曲率精度也會增加,至于莖段頂點圓的邊的數量,決定了構成該幾何體所需的頂點總數。根莖曲線的曲率精度與頂點圓分片數量的提升導致計算量增大。

圖5 分支幾何模型曲線步長設置Fig.5 Geometric curve setting of a branch
根系是由一組具有不同生長狀態的根尖進行拓展、分支而來,所以根尖被稱為根系生長的引擎。根系與環境交互體現在2處:①根系的發育狀況取決于所獲取的資源是否豐富,如養分和水分的含量;同時,根系更好的發育又能獲取更多的資源,從而進一步生長,包括根尖伸長量的增大與側根密度的增加。②根系的生長受到環境影響,包括重力影響、水分與養分濃度差或者障礙物阻礙。
為了模擬這些因素對根系生長的影響,本文為根系的每個生長周期構建了3個階段,首先考慮根尖對資源獲取與分配情況,然后計算各個根尖的資源分配量對其生長狀態產生的縮放比。最后,根據根尖所在區域的環境信息,計算出對根尖最有利的伸長方向并開始生長。
土壤中的營養物質分布不均,根系獲取的養分在整個植物的生長過程中非常重要。為此,植物可以調節根系在土壤中的生長狀態,使根系往養分高的地方覓食[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則促進該根發育,反之抑制。比如自然界中有的物種主根強壯,則可將較大分配權重分配給主根;而有的物種側根發達,則將主根分配權重減小。這也是用戶控制根系整體形狀的一種方式。
在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——受環境影響前的側根數量
環境除了影響根系的生長狀態外,也會由于根尖周圍環境的差異對生長方向進行調整。首先是向性,指根系的某一根尖朝向某一方向或者遠離某一方向的趨勢。再者就是障礙物,根在生長過程中不斷進行碰撞檢測,當與障礙物發生碰撞時,調整根尖生長方向。
(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)的目的是在障礙物表面尋找一個點,該點剛好與根莖相切,并且滿足調整后的根莖長度與調整前一致。
采用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
雖然該可視化算法對根系的形態結構與生長過程具有較好的模擬效果,但自然界中存在一些具有特殊形態的根系,比如板根、寄生根、支柱根等,這些根系目前還不能夠模擬。另外,在環境方面只考慮了對植物影響較大的一些常見非生物因素,如水分、養分、重力與障礙物等,暫未考慮沙漠、鹽堿地、極地等不適合植物生長的環境條件。例如適應干旱環境的仙人掌根系,即使處于缺水環境,根系仍能夠在淺層土壤中大范圍生長。
提出了一種根系與環境交互的動態生長可視化算法,該算法目的是構建仿真的三維根系模型。首先基于規則構建根系的拓撲結構與空間關鍵點的信息,隨后結合環境參數,根據根系自身特性計算這些內外因素在根系生長過程中產生的影響,最后生成具有動態生長效果的三維根系模型。此外,為用戶提供了多種控制根系形態的手段,根系形態包括根莖細節形狀與根系整體形態。分析結果表明,該算法可以為多類植物根系進行生長模擬,針對環境中資源分布、向性、障礙物等對根系的影響有較好的模擬效果。