999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

虛擬農場地形地貌建模研究

2015-04-29 00:00:00劉桂陽等
湖北農業科學 2015年7期

摘要:提出了利用導入農場地形輪廓、合理規劃地形高度圖的方法建立可動態更新的統一數據地形,并通過合理設計地形紋理,使紋理貼圖與地形有機結合,實現了逼真的地表效果。在農場地貌設計中,為了解決虛擬農場中無法實現按農藝要求種植植物的問題,提出了在虛擬場景編輯模式下建立自定義插件,完成批量精確定位種植植物的方法,實現了虛擬環境下種植農作物的自動化、精確化。以上方法建立的地形及地形上的植物可動態實時更新,為后期進一步開發農場仿真操作提供了技術保障。

關鍵詞:虛擬農場;地形地貌;植物建模;Unity3D

中圖分類號:TP391 文獻標識碼:A 文章編號:0439-8114(2015)07-1726-05

近年來,虛擬現實技術在農業虛擬仿真、農業生態旅游等方面應用越來越廣泛。利用虛擬植物、虛擬農田等模型,建立虛擬農場使人們在計算機上種植虛擬作物并進行虛擬農場管理,可以從任意角度甚至在作物冠層內漫游觀察作物生長狀況的動態過程,還可以通過改變環境條件和栽培措施,直觀地觀察作物生長過程[1]。在虛擬農場設計過程中,農場的地形建模是真實世界模擬的一個重要組成部分,目前地形的建模研究已經很廣泛,其中包括快速生成大規模的地形高度數據、地形地貌的細分優化、地表泥土的模擬等[2]。

通過對目前流行的虛擬現實軟件進行比較,選用Unity3D作為虛擬農場的開發環境[3]。利用Unity3D建立的Terrain地形,可以存儲和動態設置地形上各個網格點高度坐標,靈活地動態實現各種復雜地形。同時支持用戶在地形上交互式增加和刪除三維植物,這是大多三維虛擬軟件所不具備的。由于使用了植物模型優化和動態修改功能,為后期虛擬農場操作提供了保障。

常規的地形建模一般都是利用Unity3D下的Terrain地形建立山脈、湖泊等大體結構,其他如建筑、公路、田垅等細節都是利用第三方建模工具單獨建模后進行導入[4],這樣做的缺點是地形上的元素不能保持一致,對后期的仿真帶來不便。鑒于農場仿真操作大都是在野外條件下進行,而且一般都會涉及到農作物的操作,所以在此除單體的建筑物外,其他的道路、溝渠、田垅等細節采用統一的地形建模。地形的生成分為地形的輪廓導入及地形細節設計兩個步驟,地形的原始數據來源于Google Earth,導入到Unity3D虛擬現實場景中,生成了農場地形的輪廓。地形細節利用高度圖手工繪制,最后在地形上添加地貌紋理、河流、植被等對象。這種方法建立的地形在保證整體上與實際地形一致的同時,在細節設計上保留了較大的自由度。建立的地形支持高度自由變換、隨機栽種植物、地表紋理繪制等功能,為后期虛擬農場的仿真操作提供了技術保障。

1 地形輪廓的生成

1.1 Mesh網格地形下載

要建立虛擬農場中的地形,首先要有地形DEM的原始數據,由于SketchUp與Google Earth三維地理信息系統的完美結合,可以下載全球任一地區的真實地形數據(這個數據精度不是太大,但基本能夠滿足虛擬農場需要)。首先在SketchUp中利用“插入地形”工具得到小塊地形,由于Google Earth每次插入的地形大小有限,如果要實現大面積的地形效果,需要多次插入小面積的地塊,然后經過“解鎖、炸開、合并”等操作建立一個完整地塊[5]。最后將地形通過3DS格式導出到3DSMax中進行后期處理。其中主要包括地形的規格化、頂點焊接、修補漏洞、更新軸心點、重新命名等操作。最后通過FBX格式將Mesh網格地形導入到Unity3D中(圖1),其中圖1a為在Google Earth中選擇單個小地形圖,圖1b為將多個小地形在SketchUp中進行拼接,圖1c為在3DSMax中進行后期處理,圖1d為將地形導入到Unity3D中。

這里得到的地形數據可以作為虛擬農場的周邊背景,但由于是外部導入的三維物體,在Unity3D中無法根據平面坐標取得或改變地形上每個點的海拔高度,不能滿足虛擬農場后期仿真的需要,故需要將Mesh地形轉化為Unity3D下內置的Terrain對象。

1.2 地形輪廓的導入

Terrain對象是Unity3D內置對象,只能對該對象進行設計,而不能通過其他三維模型轉換得到。在這里設計算法實現了將Mesh地形的高度值導入到Terrain地形上。算法的主要原理是利用了Unity3D內置物理引擎中的光線投射功能(Ray Cast),在Mesh地形的上方進行光線掃描,逐行逐列地向下發射光線,當光線遇到Mesh地形時會記錄光線的長度,再用Terrain對象的Height高度屬性值減去光線長度,從而得到Mesh地形在這一點的高度值,再將該值映射到Terrain對象上,最后Terrain對象具有與Mesh地形完全一樣的地形高度效果(圖2),其中圖2a為利用光線投擲算法測量地形各個點的高程,圖2b為將高程導入到Terrain地形上的最終效果。

主要算法如下:

2 地形細節制作

2.1 常規地形細節建模存在的問題

由于Google Earth地形精度的原因,前面導入的地形只是農場環境地勢的大體輪廓,一些細節還要手工進行設計。Unity3D提供了利用筆刷工具改變地形的高低,但這只能進行一些粗略的繪制,無法實現精確的設計。

值得一提的是,一些已有的虛擬場景設計中使用第三方三維建模工具(如3DSMax)建立公路等地形物體,再加入到場景中覆蓋在地形上。也有一些開發人員利用Unity3D中制作公路的專用插件來建立公路模型。經過實踐驗證,發現這兩種方法都存在以下3個共同的問題:①為了使公路與周圍地形較好地連接,公路與地形距離較近,這會使后期漫游繪制場景中產生閃爍現象(從高空俯瞰地形時更加明顯);②公路周圍的綠化效果不方便實現,由于公路是單獨的模型,不能在上面直接繪制植物,給后期場景制作帶來不便;③公路的修改不方便,一旦模型建立完畢,在場景中幾乎無法修改,這不符合后期仿真的要求[6]。

2.2 利用高度圖繪制統一地形

經過實踐探索,采用高度圖建立地形,通過對高度圖的詳細繪制,實現了農場中地形的一致性。即除了一些建筑物單獨建模,其他的細節都利用地形高度變化來實現,如公路、水溝、河床、田埂、田垅、水壩等。這種方法大大提高了場景的建模效率,節約了模型資源,同時為后期的農場仿真操作提供了更多的可能。原因在于地形細節是由統一的地形對象實現,可以通過程序適時進行調整,例如田垅的起伏、公路的長短等都可以通過程序來動態調整。

這種方法帶來的問題就是對地形高度圖的設計以及地表的紋理貼圖要求較高,必須進行專門的處理。利用高度圖進行地形細節的繪制,其原理是利用Unity3D導入導出高度圖的功能來實現的,在此之前要求對地形細節的常用高度有一個明確的規劃。在Unity3D中支持8位和16位兩種高度圖,其中16位對電腦的性能要求較高,一般采用8位的灰度圖,共256個高度級別(0~255)[7]。

該設計實現的場景中高度共分為11個等級,為了保證農場場景中地形細節設計的精度,最小高度差為0.25 m(田埂高度),這樣地形的最高點可以達到256×0.25=64 m。具體高度值及灰度值如表1。

根據表1中的規劃,利用Photoshop等圖形處理工具,建立如圖3a所示的地形效果,最后存儲為RAW格式,導入到Unity3D中生成地形,如圖3b。利用圖形處理工具對高度圖進行處理,比直接在Unity3D中使用筆刷直接繪制地形要方便得多,可以滿足地形細節設計的需要[8]。

3 地貌制作

農場地貌一般比較簡單,除一般的旱田、水田外,還包括公路、山地、荒丘、河流、湖泊等。這些地表外觀大都可以使用貼圖來實現,而河流、湖泊等水系可以使用Unity3D內部的水模型來實現。在此重點討論地表紋理及植物的建模方法。

3.1 地表紋理繪制

農場的地表貼圖可以分為土地、山地、山石、公路、草地、石材鋪裝等,這些紋理圖片不僅要求是可以用于實現平鋪效果的無縫貼圖,還要求紋理的大小與邊界進行特別處理[9]。由于Unity3D中的地形貼圖原理,各個不同的貼圖之間會存在一個過渡區,為了使這部分區域很好地銜接,要對貼圖邊緣進行模型處理。另外,由于貼圖的UV映射效果,當地形的斜坡坡度較大時,不同方向的斜坡紋理要單獨進行處理,使其達到正常的貼圖大小。如圖4所示,為了公路與路邊排水溝之間的連接處過渡自然,應當將公路紋理的邊界處理成與排水溝磚塊接近的顏色。而排水溝兩個不同方向斜面上的磚塊貼圖要分別進行水平和垂直方向上的縮放處理,使其投影后顯示為正常的磚塊大小。另外,由于貼圖是從地形起點開始平鋪的,公路的位置再進行適當調整,使其地形與紋理同步。只需注意以上幾個問題,就可以利用Terrain實現各種復雜的地形細節。

3.2 農作物建模

Unity3D支持“樹”和“草”兩種植物形式,這兩種植物具有隨風擺動的效果,自動支持LOD技術(Levels of Detail)[10]。其實在實際應用中并不一定是真的“樹”和“草”,可以是其他任何植物,比如各種農作物。兩種方案的不同點在于“樹”是真正的三維模型,而“草”只是一個實時正對相機的圖片,用戶可以根據需要進行選擇。一般體積較大、仿真中離相機較近的植物使用“樹”,其他的使用“草”。除非特殊需要,否則“樹”的建模要盡量精減,畢竟一般農作物數量較多,太多的面數會增加顯卡的負擔。圖5a為玉米,是三維模型,圖5b為水稻,是十字交叉模型。

3.3 批量精準種植作物

Unity3D內置了不同的筆刷形狀,如果場景中只有少量對位置精度要求不高的植物,可以使用Unity3D內置的刷樹和刷草功能來實現。但這種方法無法實現植物在地形上的精確定位和布局,而這種精確定位在農作物的種植仿真中尤為重要。例如,農田中玉米的株距和行距在農藝上都有明確的要求,利用Unity3D內置的功能無法快速完成這一操作。如果不使用Unity3D內置的“樹”而使用自定義模型的方法,直接將“樹”放入到場景中,可以利用對象的位置實現各個植物的精確定位,但這意味著放棄了Unity3D內置“樹”的風吹和優化效果。為此,有必要研發Unity3D內置“樹”的批量精準定位算法。通過分析Unity3D的內部技術文檔,定義了如下的幾個類來實現這個算法,其ER圖如圖6。

算法共包含兩個應用程序類PlantScript和AttachedPlantScript,二者都運行于編輯模型下,分別對應兩個編輯器界面類PlantEditor和AttachedPlantEditor,為其提供編輯器外觀。PlantScript為主應用類,將其附加給Terrain對象即可,當激活“New Plant”按鍵時,將生成“Plant”對象,其下自動附加AttachedPlantScript代碼。Plant對象在編輯模式下會自動繪制種植參考線,參考線表示所要種植地塊的大小和植株行列間距,用戶可以在“Inspector”面板上通過AttachedPlantEditor編輯器類提供的界面實時可視修改。滿意后單擊“FinalizePlant”按鈕,激活FinalizePlant()方法實現批量種植。圖7a為利用自定義插件在設計環境下種植玉米,圖7b為水稻種植的最終運行效果。

4 小結

通過導入地形輪廓和設計高度圖的方法,可以快速建立虛擬農場地形,但必須配合設計合適的紋理圖片才能使地形達到較好的仿真效果,特別是結合凹凸著色器設計,可以使效果更加逼真。紋理圖片要注意選擇合適的解析度,避免圖片象素過高造成資源浪費。地形的解析度大小應當根據仿真要求合理進行選擇,解析度過小地形的起伏不夠平滑,過大會占用資源太多使仿真不夠流暢。對于不同區域細節要求差別較大的場景,可以選擇不同解析度的多塊地形來拼接實現。編寫實用的植物批量精準定位種植算法可以提高植物建模效率,這個算法可以進一步擴展,例如允許用戶自定義區域形狀,使種植區域的設計更加靈活。

參考文獻:

[1] 顧祝軍,曾志遠.虛擬現實技術在我國農業現代化中的應用[J].農機化研究,2005(1):12-15.

[2] 王旭明,劉 循.大規模地形建模的研究[J].計算機與數字工程, 2011,39(6):1-4.

[3] 邱建松.基于Unity3d的實時虛擬仿真系統的研究與實現[J]. 電子制作,2012(12):11-13.

[4] 陳 洪,馬 欽,朱德海.基于unity3d的交互式虛擬農業仿真平臺研究[J].農機化研究,2012(3):184-186.

[5] 丁 斌,祖家奎.三維可視化中的地形建模與實現技術研究[J].計算機仿真,2008,25(12):212-215.

[6] 楊忠偉,康瑞存,謝 青.虛擬現實技術的研究[J].測繪與空間地理信息,2009,32(2):161-163.

[7] 尹華飛,鄭昌文,胡曉惠.交互式數字地形合成算法[J].計算機輔助設計與圖形學學報,2012,24(7):909-917.

[8] 潘炯波.三角網格的自適應細分研究[J].計算機工程與應用, 2011,47(18):186-187.

[9] 王 旭,楊 新,王志銘.在GPU上實現地形渲染的自適應算法[J].計算機輔助設計與圖形學學報,2010,22(10):1741-1749.

[10] 李白云,趙春霞.GPU實時構建四叉樹的快速地形渲染算法[J].計算機輔助設計與圖形學學報,2010,22(12):2259-2264.

主站蜘蛛池模板: 天堂av高清一区二区三区| 性激烈欧美三级在线播放| 国产精品亚洲日韩AⅤ在线观看| 亚洲第一区精品日韩在线播放| 波多野结衣久久精品| 国产成人资源| 黄色网址免费在线| 88av在线| 国产一区二区三区在线精品专区 | 狠狠综合久久久久综| 欧美日韩中文国产| 久久影院一区二区h| 日韩经典精品无码一区二区| 日本高清有码人妻| 日本爱爱精品一区二区| 深夜福利视频一区二区| 中国特黄美女一级视频| 亚洲制服中文字幕一区二区| 国产理论最新国产精品视频| 欧美日韩成人在线观看| 天天做天天爱天天爽综合区| 久久伊人色| 91色国产在线| 欧美日韩国产成人高清视频| 一级全免费视频播放| 亚洲区欧美区| 97在线碰| 深爱婷婷激情网| 夜夜高潮夜夜爽国产伦精品| www.youjizz.com久久| 国产成人亚洲欧美激情| 五月婷婷丁香综合| 免费在线a视频| 亚洲日韩国产精品无码专区| 免费国产高清视频| 国内精品自在自线视频香蕉| 国产精品主播| 国产精品v欧美| 激情午夜婷婷| 最新国产你懂的在线网址| 一级毛片在线直接观看| 午夜不卡福利| 国产99在线| 农村乱人伦一区二区| 亚洲日韩精品伊甸| 爱色欧美亚洲综合图区| 91激情视频| 日韩成人午夜| 日韩东京热无码人妻| 免费网站成人亚洲| 国产一二三区视频| 中国精品自拍| 国产精品视频999| 亚洲无码电影| 欧美天堂久久| 亚洲天天更新| 日韩免费毛片| 国产极品美女在线播放| 日韩久久精品无码aV| 亚洲乱码视频| 狠狠干综合| 伊人无码视屏| 亚洲成肉网| 国产电话自拍伊人| 欧美亚洲第一页| 亚洲国产精品人久久电影| 免费又爽又刺激高潮网址| 婷婷午夜天| 亚洲美女视频一区| 婷婷成人综合| 波多野结衣视频一区二区 | 99在线视频免费| 中国国产高清免费AV片| 国产乱子伦手机在线| 国产激爽爽爽大片在线观看| 亚洲精品国产日韩无码AV永久免费网 | 国产经典三级在线| 国产成人超碰无码| 五月婷婷导航| 操国产美女| 国产免费久久精品99re不卡| 亚洲成人www|