黃劍峰,丁彥柟
(國網上海市電力公司市南供電公司,上海 200233)
近年來,國網公司一直致力于通過科學技術手段提升電力生產管理和運維檢修風險防范能力。在國家電網公司的統一部署下,國網上海市電力公司已完成PMS 2.0的建設與實施。PMS 2.0電網圖形是二維圖形平臺,無法精準表達設備三維空間信息,而且傳統的二維管理平臺已經無法承載如此龐大的數據量[1-2]。
自2017年起,國網公司全面開展了500 kV及以上電壓等級變電站、架空線路等的三維項目工作,意在推動輸變電運行管理向數字化、三維可視化方向發展,更好地支撐運維工作各類業務的開展,滿足支撐輸變電智能運維管控及可視化展示的需要。國網公司為了統一各省電力公司三維模型規范的一致性,滿足運檢業務應用,所建模型必須通過模型校驗、審核后方可使用。
模型在三維全景展示的平臺數量較多,加上三維模型在各平臺中出現問題也有所不同,因此對于模型的質量以及材質紋理提出了更為嚴格的質量要求。針對平臺展示出現的問題,尤其是大規模、多平臺同時存在的問題是首先要解決的。 利用人工工作模式排除模型在三維展示平臺出現問題時,存在問題數量龐大、耗時長、工序繁瑣、問題易遺漏、不易輕量化等缺陷。為了將三維模型以更快、更高的要求接入到各平臺中展示,有必要開發建模軟件腳本以解決三維模型在導入多平臺時出現的問題。
在三維模型中,一般通過幾何體來展現模型的結構,而模型的外觀紋理、屬性以及細節方面的問題等,則往往通過模型的材質來展現。當模型導入時遇到平臺兼容性或支撐的文件格式有差異問題時,就容易造成模型難以導入平臺,或者是導入平臺后不能夠正確展示。作為多平臺通用的模型往往需要嚴格使用兼容的材質球,以及兼容的模型格式。
但是在建模過程中模型的結構或者材質出現問題,并不能夠很直觀地顯示出來,在最終場景文件導入展示平臺的過程中,就會存在許多問題。而這些問題往往數量過于龐大,這就給模型問題的排查工作帶來了很大的麻煩,不僅耗時長而且容易遺漏。
在三維建模工作中,主要以3DS MAX為標準建模軟件進行建模,平臺導入方面目前用的最多的是U3D和VRS兩個平臺,這兩個平臺展示出現的問題不一。通過研究發現一個規律,在U3D平臺展示沒有問題的模型在VRS平臺不一定能正常展示,但在VRS平臺中展示沒有問題的模型在U3D平臺上幾乎不會出現新問題,二者成包含與被包含的關系。因此,只要解決了VRS平臺展示出現的問題即可。
材質和幾何體這兩種問題在VRS平臺中出現頻率高,材質問題主要包括空材質和材質紋理混亂,在平臺展示中出現的現象主要是材質不正確或者是無材質貼圖;幾何體主要針對模型軸心和模型縮放比例問題進行處理,在平臺中出現的現象主要包括模型漂移、模型穿插和模型旋轉縮放。下面主要以材質和幾何體這兩個方面進行討論。
材質在3DS MAX軟件中以材質球概念的形式存在。Standard材質球和Multi多維材質球是3DS MAX軟件中最基礎,也是應用范圍最廣泛的材質球。Multi多維材質球是Standard材質球的集合。
在各個平臺中,均對Standard材質球和Multi多維材質球有著極好的兼容性。因此,大多數平臺往往會要求建模人員使用標準的Standard材質球和Multi多維材質球。
材質球使用標準材質往往決定了模型能不能在其他平臺中正常展示和加載,也決定著模型展示效果是否美觀。在研究過程中,結合市場多種平臺的調研數據,得到材質球常見的問題有如下幾種。
(1)材質球使用非標準Standard材質球和Multi多維材質球。
(2)由于市場上建模人員從事行業不同導致建模習慣有較大的差異,如建筑和工業展示的場景中常常出現VRay材質球,建筑和工業設計的場景中常常會出現CAD軟件或Revit軟件所特有的材質球。
(3)多維子材質嵌套使用。多維子材質雖然是標準材質,但是嵌套使用時就是一種錯誤的使用方式,目前沒有任何一個平臺或軟件(包括3DS MAX軟件自身)能夠對多維子材質嵌套使用進行正確展示。但在建模過程中又很容易產生多維子材質嵌套使用的現象。
貼圖文件使用時常見問題如下。
(1)貼圖文件未使用JPG或PNG格式的位圖文件。
(2)貼圖不標準,貼圖比例不是1∶1、邊長為2的指數倍的正方形位圖。
(3)貼圖文件存在丟失。
通過研究Script腳本語言對材質球的定義發現,場景文件中所有材質球均定義在Scene Materials數組中。
因此,可以通過數組索引的方式遍歷所有的材質球進行檢查。可以用Class of函數來判斷材質球是否是Standard Material或Multi Material,以此來判斷材質球是否符合材質球標準,也可以判斷材質球是否存在多維子材質嵌套。在Standard Material材質球的定義中通過獲取Diffuse Map屬性和Opacity Map屬性來獲取使用貼圖的路徑和貼圖格式,也可以用打開Diffuse Map和Opacity Map的方式來判斷貼圖是否存在或者邊長、比例是否符合規定。
模型材質問題處理流程如圖1所示。模型材質問題處理流程如圖2所示。

圖1 模型材質問題處理流程

圖2 模型材質問題處理流程
從參數上來看,實現以腳本來檢查模型材質球及貼圖是否合格是完全可行的,具備可實行的條件。材質問題優化前后的場景截圖對比如圖3所示。

圖3 材質問題優化前后的場景截圖對比
(1)問題一:模型縮放導致軸心位置不一致。在實際建模過程中,有許多設備除大小不一致外,外觀基本接近,而建模人員在建模時常常會使用縮放工具對部分設備部件或設備進行縮放,以達到快速建模的目的。因此,模型中往往會存在大量的模型軸心縮放屬性,導致許多模型軸心縮放屬性極其復雜。3DS MAX軟件對于模型兼容性很強,但在3DS MAX軟件中顯示正常的模型到其他平臺中就可能顯示不正常,可能會出現模型偏移、大小不一致、反面等現象。這種不能實時看到最終結果的檢查方式,增加了對模型檢查的難度。
(2)問題二:實例模型縮放值不一致。實例模型縮放不一致的問題與模型縮放導致軸心位置不一致問題產生的原因基本一致。實例模型縮放不一致一定會造成模型在平臺中顯示出錯。尤其是實例的模型中存在部分縮放值為負數的模型,這個問題產生的原因是一部分設備在實際場景中與其他模型成對稱關系時,建模人員往往會采用鏡像的方式將模型實例擺放。由于實例模型在平臺中展示時往往會按照第一個模型的數據進行實例應用,再加上很少有平臺會為每個模型單獨指定縮放值,因此這類問題的模型在大多數平臺中都會顯示異常。
為了提升模型的兼容性,可在不改變模型大小和位置的前提下,將所有模型縮放屬性全部移除。
(1)對場景中所有節點進行軸心重置,然后將所有具有縮放屬性的節點選擇出來。
(2)按照實例數對具有縮放屬性的節點進行篩選。
(3)無實例對象的單一節點,采用附加的方式進行節點重置:步驟一,創建新的BOX節點A;步驟二,復制被替換節點的名稱、位置、旋轉、父節點及材質給A;步驟三,將被替換模型的所有子節點的父節點指定成為A;步驟四,刪除A節點所有面元素使之成為空節點;步驟五,使用空節點A附加被替換的節點。
(4)具備實例對象的模型節點,再次按照模型的縮放值對實例節點進行篩選。
(5)對于具有同一縮放值的實例對象集,采用附加的方式重置第一個節點,并用新的節點替換其他具有同一縮放值實例對象:步驟一,復制第一個實例對象T,并以無實例對象的方式對模型進行重置,生成新的對象N;步驟二,從對象N實例復制出對象N1,并將第二個實例對象的名稱、位置、旋轉、父節點及材質指定給N1;步驟三,將第二個實例對象的子節點的父節點指定為N2;步驟四,對比N1和第二個實例對象,判斷外觀是否一致;步驟五,重復步驟二、步驟三和步驟四,依次復制出其他實例節點;步驟六,刪除具有縮放值的實例對象集。
模型幾何體問題處理流程圖如圖4所示。

圖4 模型幾何體問題處理流程圖
幾何體在場景優化前后的對比圖如圖5所示。

圖5 幾何體在場景優化前后的對比圖
本文利用代碼腳本插件技術解決三維模型導入多平臺時遇到的模型問題。根據三維建模軟件功能的邏輯原理得到各平臺均出現的普遍問題,利用軟件功能可替代人工重復性操作的特點,讓大規模需要優化的模型在短時間內完成,并從成本、效率兩個方面進行對比分析。
一個電站在三維建模完成后,導入平臺中出現的模型問題數量不等,但數量非常龐大。以每個電站有5 000個模型問題為例,如果不開發建模腳本處理這些問題,一個經驗豐富的三維技術人員大約需要15天的時間才能完成,存在耗時長、容易遺漏等問題;如果開發建模腳本處理這些問題,需要2天左右的時間,快的話一天就可以完成,而且不需要經驗豐富的三維技術人員也可以完成,新手都可以快速上手對模型進行優化處理。單個電站模型優化數據分析表如表1所示。

表1 單個電站模型優化數據分析表
相比之下,建模腳本對電網設備模型優化的優勢顯而易見。目前建模腳本研發還在繼續,相信后期建模腳本可以對三維模型提供更大的幫助,讓模型可在多種三維展示平臺中更穩定的運行。