本申請涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種三維樹狀模型生成方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、目前三維場景下的樹木生成方案一般分為兩類。第一類是預(yù)生成模型,在開發(fā)過程中生成樹的模型,然后在軟件運行過程中加載這些模型,如speedtree(一種建模軟件)、sketchup(一種三維設(shè)計軟件)的三維植物生成插件tree?maker(一種三維植物生成插件)等可以隨機生成一些樹模型,或者是讓設(shè)計師使用c4d(一種建模軟件)等三維設(shè)計軟件手動設(shè)計樹模型。第二類是通過隨機生成算法在軟件運行過程中直接生成模型,例如基于p5.js(一個javascript(一種編程語言)函數(shù)庫)的canvas(html5中的一個標(biāo)簽)的二維樹生成算法,可以在線生成樹狀幾何體結(jié)構(gòu)。隨機生成三維樹木的模型會喪失一些對樹木模型的自定義能力,難以生成細(xì)致自然的樹狀結(jié)構(gòu),而如果讓設(shè)計師手動構(gòu)建,則效率較低。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┝艘环N三維樹狀模型生成方法、裝置、電子設(shè)備及存儲介質(zhì)。
2、本申請實施例一方面提供一種三維樹狀模型生成方法,所述方法包括:
3、獲得樹狀數(shù)據(jù)集,所述樹狀數(shù)據(jù)集中包括樹干長度和至少一個節(jié)點數(shù)據(jù)組,所述節(jié)點數(shù)據(jù)組中包括所述至少一個節(jié)點數(shù)據(jù);
4、設(shè)置第一原點的坐標(biāo),并基于所述第一原點的坐標(biāo)和所述樹干長度確定第二原點的坐標(biāo);
5、基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點;
6、創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑;
7、基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型。
8、其中,所述基于所述第一原點和所述樹干長度確定第二原點,包括:
9、基于所述第一原點的縱坐標(biāo)和所述樹干長度確定所述第二原點的縱坐標(biāo);
10、基于所述第一原點和所述第二原點的縱坐標(biāo)確定所述第二原點。
11、其中,所述基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點,包括:
12、確定所述節(jié)點數(shù)據(jù)對應(yīng)的父節(jié)點;
13、獲得所述節(jié)點數(shù)據(jù)對應(yīng)的父節(jié)點的坐標(biāo);
14、基于所述節(jié)點數(shù)據(jù)對所述節(jié)點數(shù)據(jù)對應(yīng)的父節(jié)點的坐標(biāo)進行調(diào)整,得到所述節(jié)點數(shù)據(jù)對應(yīng)的節(jié)點的坐標(biāo)。
15、其中,所述基于所述節(jié)點數(shù)據(jù)對所述節(jié)點數(shù)據(jù)對應(yīng)的父節(jié)點的坐標(biāo)進行調(diào)整,得到所述節(jié)點數(shù)據(jù)對應(yīng)的節(jié)點的坐標(biāo),包括:
16、基于所述節(jié)點數(shù)據(jù)中的橫向擴張半徑對對應(yīng)的父節(jié)點的橫坐標(biāo)進行調(diào)整,得到所述節(jié)點的橫坐標(biāo);
17、基于所述節(jié)點數(shù)據(jù)中的縱向擴張深度對對應(yīng)的父節(jié)點的縱坐標(biāo)進行調(diào)整,得到所述節(jié)點的縱坐標(biāo);
18、基于所述節(jié)點的橫坐標(biāo)、縱坐標(biāo)和對應(yīng)的父節(jié)點的豎坐標(biāo)確定所述節(jié)點的候選坐標(biāo);
19、將所述節(jié)點的候選坐標(biāo)以對應(yīng)的父節(jié)點所在豎線為中心朝預(yù)設(shè)方向旋轉(zhuǎn)控制角度,得到所述節(jié)點的坐標(biāo),所述節(jié)點數(shù)據(jù)中還包括所述控制角度,所述節(jié)點的坐標(biāo)為所述候選坐標(biāo)在所述旋轉(zhuǎn)完成后的坐標(biāo)。
20、其中,所述創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑,包括:
21、確定節(jié)點的至少一個子節(jié)點;
22、將所述節(jié)點與所述節(jié)點的至少一個子節(jié)點進行連接,得到所述節(jié)點與所述節(jié)點的至少一個子節(jié)點之間的路徑。
23、其中,所述基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型,包括:
24、基于所述樹狀數(shù)據(jù)集確定所述路徑的管道參數(shù);
25、基于所述管道參數(shù)創(chuàng)建所述路徑的管道緩沖幾何體,得到所述三維樹狀模型。
26、其中,該方法還包括:
27、在所述路徑中選取至少一個中間節(jié)點;
28、基于預(yù)設(shè)范圍對所述至少一個中間節(jié)點的橫坐標(biāo)、縱坐標(biāo)和/或豎坐標(biāo)進行調(diào)整,得到對應(yīng)的至少一個新增節(jié)點;
29、將所述路徑兩端的節(jié)點與所述至少一個新增節(jié)點進行連接,得到新的路徑。
30、本申請實施例另一方面提供一種三維樹狀模型生成裝置,所述裝置包括:
31、采集模塊,用于獲得樹狀數(shù)據(jù)集,所述樹狀數(shù)據(jù)集中包括樹干長度和至少一個節(jié)點數(shù)據(jù)組,所述節(jié)點數(shù)據(jù)組中包括所述至少一個節(jié)點數(shù)據(jù);
32、計算模塊,用于設(shè)置第一原點的坐標(biāo),并基于所述第一原點的坐標(biāo)和所述樹干長度確定第二原點的坐標(biāo);以及基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點;
33、處理模塊,用于創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑;
34、渲染模塊,用于基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型。
35、本申請還一方面提供一種電子設(shè)備,包括:采集裝置和處理器,所述采集裝置和所述處理器電連接;
36、所述采集裝置獲得樹狀數(shù)據(jù)集;
37、所述處理器設(shè)置第一原點的坐標(biāo),并基于所述第一原點的坐標(biāo)和所述樹干長度確定第二原點的坐標(biāo);基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點;創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑;以及基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型。
38、本申請再一方面提供一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)存儲有計算機程序,所述計算機程序用于獲得樹狀數(shù)據(jù)集;設(shè)置第一原點的坐標(biāo),并基于所述第一原點的坐標(biāo)和所述樹干長度確定第二原點的坐標(biāo);基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點;創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑;以及基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型。
39、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識本申請的實施例的關(guān)鍵或重要特征,也不用于限制本申請的范圍。本申請的其它特征將通過以下的說明書而變得容易理解。
1.一種三維樹狀模型生成方法,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,所述基于所述第一原點和所述樹干長度確定第二原點,包括:
3.根據(jù)權(quán)利要求1所述的方法,所述基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點,包括:
4.根據(jù)權(quán)利要求3所述的方法,所述基于所述節(jié)點數(shù)據(jù)對所述節(jié)點數(shù)據(jù)對應(yīng)的父節(jié)點的坐標(biāo)進行調(diào)整,得到所述節(jié)點數(shù)據(jù)對應(yīng)的節(jié)點的坐標(biāo),包括:
5.根據(jù)權(quán)利要求1所述的方法,所述創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑,包括:
6.根據(jù)權(quán)利要求1所述的方法,所述基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型,包括:
7.根據(jù)權(quán)利要求1所述的方法,該方法還包括:
8.一種三維樹狀模型生成裝置,所述裝置包括:
9.一種電子設(shè)備,包括:采集裝置和處理器,所述采集裝置和所述處理器電連接;
10.一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)存儲有計算機程序,所述計算機程序用于獲得樹狀數(shù)據(jù)集;設(shè)置第一原點的坐標(biāo),并基于所述第一原點的坐標(biāo)和所述樹干長度確定第二原點的坐標(biāo);基于所述第一原點、所述第二原點和所述節(jié)點數(shù)據(jù)組中的至少一個節(jié)點數(shù)據(jù)確定所述節(jié)點數(shù)據(jù)組對應(yīng)的至少一個節(jié)點;創(chuàng)建所述第一原點、所述第二原點和所述至少一個節(jié)點之間的路徑;以及基于所述路徑創(chuàng)建管道緩沖幾何體,得到三維樹狀模型。