本發(fā)明涉及信息可視化技術(shù)領(lǐng)域,具體涉及一種基于unity3d著色器顯示機(jī)房地面溫場分布的方法和裝置。
背景技術(shù):
在unity3d機(jī)房展示界面中,有一項(xiàng)動態(tài)環(huán)境數(shù)據(jù)展示功能,展示系統(tǒng)采集監(jiān)測機(jī)房中的各項(xiàng)數(shù)據(jù)指標(biāo),圖1示出了現(xiàn)有技術(shù)中顯示機(jī)房地面的溫度分布的示意圖,如圖1所示,系統(tǒng)中動環(huán)數(shù)據(jù)展示指標(biāo)以文字形式展示,其中溫度數(shù)據(jù)指標(biāo),這樣的展示方式比較死板且無法直觀體現(xiàn)出機(jī)房實(shí)際溫度區(qū)域分布狀況,不利于對機(jī)房運(yùn)行狀況的有效監(jiān)測。
其中,溫度數(shù)據(jù)作為動態(tài)環(huán)境數(shù)據(jù)中表征機(jī)房運(yùn)行狀況的重要的指標(biāo)之一,機(jī)房的運(yùn)維人員希望能夠更加直觀、動態(tài)地觀察機(jī)房各區(qū)域的溫度分布情況以及溫度擴(kuò)散情況,需要實(shí)現(xiàn)圖形顯示環(huán)境溫度分布情況,類似圖2中顯示效果,圖2示出了現(xiàn)有技術(shù)中通過圖形顯示機(jī)房環(huán)境溫度的示意圖。
現(xiàn)有技術(shù)中,在unity3d著色器附給地面對象,通過顏色算法計(jì)算著色器顏色可以實(shí)現(xiàn)類似圖2中顯示效果。然而,現(xiàn)有方案存在如下缺陷:1、監(jiān)控溫度點(diǎn)的溫度和位置在unity3d著色器程序中固定寫死,無法對應(yīng)機(jī)房應(yīng)用中動態(tài)加載的傳感器溫度和傳感器實(shí)際位置;2、針對正方形地板著色算法顯示正常,溫度以圓形方式擴(kuò)散影響范圍,但是機(jī)房實(shí)際模型往往是不規(guī)則形狀,使用同樣方法會對顯示溫度區(qū)域進(jìn)行扭曲,無法正確體現(xiàn)溫度影響區(qū)域效果,如圖3所示,圖3示出了現(xiàn)有技術(shù)中機(jī)房地面溫場分布顯示發(fā)生扭曲的示意圖。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于unity3d著色器顯示機(jī)房地面溫場分布的方法和裝 置。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種基于unity3d著色器顯示機(jī)房地面溫場分布的方法,該方法包括:
將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中;
建立渲染平面坐標(biāo)系;所述渲染平面坐標(biāo)系的x軸平行于所述機(jī)房模型中的地面模型的長邊,y軸平行于所述地面模型的寬邊,x軸與y軸的量程的比例等于所述地面模型的長寬比例;
將位于所述地面模型上的各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo);
根據(jù)各傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo),利用unity3d著色器在所述渲染平面坐標(biāo)系中進(jìn)行溫場分布渲染,將渲染得到的溫場分布圖按比例放大或縮小后覆蓋在所述地面模型上,使得所述溫場分布圖與所述地面模型相重合。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種基于unity3d著色器顯示機(jī)房地面溫場分布的裝置,該裝置包括:
模型導(dǎo)入單元,適于將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中;
渲染平面坐標(biāo)系建立單元,適于建立渲染平面坐標(biāo)系;所述渲染平面坐標(biāo)系的x軸平行于所述機(jī)房模型中的地面模型的長邊,y軸平行于所述地面模型的寬邊,x軸與y軸的量程的比例等于所述地面模型的長寬比例;
坐標(biāo)變換單元,適于將位于所述地面模型上的各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo);
渲染處理單元,適于根據(jù)各傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo),利用unity3d著色器在所述渲染平面坐標(biāo)系中進(jìn)行溫場分布渲染,將渲染得到的溫場分布圖按比例放大或縮小后覆蓋在所述地面模型上,使得所述溫場分布圖與所述地面模型相重合。
由上述可知,本發(fā)明提供的技術(shù)方案在機(jī)房模型中建立渲染平面坐標(biāo)系,以渲染平面坐標(biāo)系為基準(zhǔn)所形成的渲染平面與地面模型的長寬具有等比例性,保證了最終在渲染平面上渲染顯示的地面溫場分布的正確性,不會因地面模型的不規(guī)則而發(fā)生扭曲和變形;又由于該方案在建立渲染平面坐標(biāo)系 后可以根據(jù)需要靈活進(jìn)行傳感器模型的坐標(biāo)變換和渲染處理的特點(diǎn),當(dāng)機(jī)房中的溫度傳感器的數(shù)量或位置發(fā)生變化時(shí),可以動態(tài)地變化機(jī)房模型中的傳感器模型,動態(tài)地進(jìn)行相應(yīng)的溫場分布的渲染;使得機(jī)房的運(yùn)維人員可以在unity3d機(jī)房模型展示界面中直觀地看到機(jī)房地面各區(qū)域的溫度高低和對比,有利于對機(jī)房環(huán)境及運(yùn)行情況進(jìn)行有效地監(jiān)控。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了現(xiàn)有技術(shù)中顯示機(jī)房地面的溫度分布的示意圖;
圖2示出了現(xiàn)有技術(shù)中通過圖形顯示機(jī)房環(huán)境溫度的示意圖;
圖3示出了現(xiàn)有技術(shù)中機(jī)房地面溫場分布顯示發(fā)生扭曲的示意圖;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于unity3d著色器顯示機(jī)房地面溫場分布的方法的流程圖;
圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的地面模型的俯視圖;
圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例顯示的機(jī)房地面溫場分布的示意圖;
圖7示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例顯示的機(jī)房地面溫場分布的示意圖;
圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于unity3d著色器顯示機(jī)房地面溫場分布的裝置的示意圖;
圖9示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的一種基于unity3d著色器顯示機(jī)房地面溫場分布的裝置的示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本發(fā)明的示例性實(shí)施例。雖然附圖中顯示了本發(fā)明的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本發(fā)明而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本發(fā)明,并且能夠?qū)⒈景l(fā)明的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于unity3d著色器顯示機(jī)房地面溫場分布的方法的流程圖。如圖4所示,該方法包括:
步驟s410,將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中。
本步驟中,所述機(jī)房模型是在3d場景中所建立的機(jī)房模型,該機(jī)房模型是以世界坐標(biāo)系顯示在3d場景中的,因此導(dǎo)入到unity3d中的機(jī)房模型的相關(guān)參數(shù)均是以世界坐標(biāo)系為基準(zhǔn)的。
步驟s420,建立渲染平面坐標(biāo)系;所述渲染平面坐標(biāo)系的x軸平行于所述機(jī)房模型中的地面模型的長邊,y軸平行于所述地面模型的寬邊,x軸與y軸的量程的比例等于所述地面模型的長寬比例。
步驟s430,將位于所述地面模型上的各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo)。
本步驟中,每個(gè)傳感器模型是實(shí)際情景下置于機(jī)房的地面上的溫度傳感器,用于測量其所在位置的溫度。
步驟s440,根據(jù)各傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo),利用unity3d著色器在所述渲染平面坐標(biāo)系形成的渲染平面上進(jìn)行溫場分布渲染,將渲染得到的溫場分布圖按比例放大或縮小后覆蓋在所述地面模型上,使得所述溫場分布圖與所述地面模型相重合。
本步驟中,unity3d著色器中已預(yù)先定義了溫度與顏色的對應(yīng)關(guān)系以及溫度擴(kuò)散函數(shù),該溫度擴(kuò)散函數(shù)根據(jù)已知的各傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo),能夠計(jì)算得到渲染平面坐標(biāo)系形成的渲染平面上的其他坐標(biāo)點(diǎn)的溫度分布,以相應(yīng)的顏色進(jìn)行表征。具體地,該溫度擴(kuò)散函數(shù)為二維線性差值算法,通過該二維線性差值算法可以得到每兩個(gè)已知溫度點(diǎn)之間的各坐標(biāo)點(diǎn)的溫度分布。
可見,圖4所示的方法對于待顯示地面溫場分布的機(jī)房,將機(jī)房模型導(dǎo)入unity3d中作為unity項(xiàng)目,根據(jù)該unity項(xiàng)目中的相關(guān)參數(shù),建立渲染 平面坐標(biāo)系,該渲染平面坐標(biāo)系形成的渲染平面與機(jī)房模型中的地面模型的大小成比例、位置一致,實(shí)質(zhì)上成比例地重現(xiàn)了地面模型;將傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在渲染平面坐標(biāo)系中的位置坐標(biāo);則可知根據(jù)傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo)所渲染出的在渲染平面上的溫場分布實(shí)質(zhì)上反映了地面模型上的溫場分布情況,將渲染后得到的溫場分布圖按比例放大或縮小后重合覆蓋在所述地面模型上,實(shí)現(xiàn)了在該地面模型上顯示溫場分布的效果。
依據(jù)此方案,由于渲染平面坐標(biāo)系所形成的渲染平面與地面模型的長寬等比例性,保證了最終顯示的地面溫場分布的正確性,不會發(fā)生扭曲和變形;又由于該方案的粒度較小靈活性較高,當(dāng)機(jī)房中的溫度傳感器的數(shù)量或位置發(fā)生變化時(shí),可以動態(tài)地變化機(jī)房模型中的傳感器模型,動態(tài)地進(jìn)行相應(yīng)的溫場分布的渲染;使得機(jī)房的運(yùn)維人員可以在unity3d機(jī)房模型展示界面中直觀地看到機(jī)房地面各區(qū)域的溫度高低和對比,有利于對機(jī)房環(huán)境及運(yùn)行情況進(jìn)行有效地監(jiān)控。
在本發(fā)明的一個(gè)實(shí)施例中,在步驟s410將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中之前,圖4所示的方法進(jìn)一步包括:在unity3d著色器中預(yù)先聲明地面對象,該地面對象的變量包括:該地面對象的長度變量、寬度變量和位置坐標(biāo)變量;以及,在unity3d著色器中預(yù)先聲明多個(gè)溫度點(diǎn)對象,每個(gè)溫度點(diǎn)對象的變量包括:該溫度點(diǎn)對象的位置坐標(biāo)變量,該溫度點(diǎn)對象的溫度變量。
則步驟s420建立渲染平面坐標(biāo)系包括:從所述機(jī)房模型中獲取所述地面模型的長度值、寬度值和在世界坐標(biāo)系中的位置坐標(biāo)值;將所述長度值賦值給unity3d著色器中預(yù)先聲明的長度變量,將所述寬度值賦值給unity3d著色器中預(yù)先聲明的寬度變量,將所述地面模型在世界坐標(biāo)系中的位置坐標(biāo)值賦值給unity3d著色器中預(yù)先聲明的位置坐標(biāo)變量;根據(jù)被賦值的地面對象的長度變量、寬度變量和位置坐標(biāo)變量,建立所述渲染平面坐標(biāo)系。
在建立上述渲染平面坐標(biāo)系之后,步驟s430從所述機(jī)房模型中獲取位于所述地面模型上的各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)值;根據(jù)所述地面模型的長度值、寬度值和在世界坐標(biāo)系中的位置坐標(biāo)值,將各傳感器模 型在世界坐標(biāo)系中的位置坐標(biāo)值變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo)值。
進(jìn)而,步驟s440根據(jù)各傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo),利用unity3d著色器在所述渲染平面坐標(biāo)系中進(jìn)行溫場分布渲染包括:將各傳感器模型與unity3d著色器中預(yù)先聲明的多個(gè)溫度點(diǎn)對象建立一一對應(yīng)關(guān)系;對于每個(gè)傳感器模型,將該傳感器模型在所述渲染平面上的相對位置坐標(biāo)值賦值給對應(yīng)的溫度點(diǎn)對象的位置坐標(biāo)變量,將該傳感器模型的溫度值賦值給對應(yīng)的溫度點(diǎn)對象的溫度變量;根據(jù)被賦值的各溫度點(diǎn)對象的位置坐標(biāo)變量和溫度變量,利用unity3d著色器在所述渲染平面上進(jìn)行溫場分布渲染。
通過一個(gè)具體的實(shí)施例來說明本方案的實(shí)施過程:在unity3d著色器的屬性設(shè)置中預(yù)先聲明一個(gè)地面對象和多個(gè)溫度點(diǎn)對象,地面對象的變量包括:該地面對象的長度變量、寬度變量和位置坐標(biāo)變量,每個(gè)溫度點(diǎn)對象的變量包括:該溫度點(diǎn)對象的位置坐標(biāo)變量和溫度變量。
對應(yīng)的具體過程的代碼如下:
從上段代碼中可以看到,在本實(shí)施例中,在unity3d著色器的屬性設(shè)置 中預(yù)先聲明了一個(gè)地面對象,該地面對象通過一個(gè)四維向量的類型對象來表征,該四維向量包括四個(gè)浮點(diǎn)變量,依次為:地面對象的中心點(diǎn)在世界坐標(biāo)系中的x軸坐標(biāo)變量,地面對象的中心點(diǎn)在世界坐標(biāo)系中的y軸坐標(biāo)變量,地面對象的長度變量,地面對象的寬度變量;以及,在unity3d著色器的屬性設(shè)置中預(yù)先聲明了n個(gè)溫度點(diǎn)對象,每個(gè)溫度點(diǎn)對象通過一個(gè)四維向量的類型對象來表征,該四維向量包括四個(gè)浮點(diǎn)變量,依次為:溫度點(diǎn)對象在世界坐標(biāo)系中的x軸坐標(biāo)變量,溫度點(diǎn)對象在世界坐標(biāo)系中的y軸坐標(biāo)變量,溫度點(diǎn)對象的溫度變量,溫度點(diǎn)對象的生效標(biāo)識;當(dāng)然也可以是:溫度點(diǎn)對象在渲染平面坐標(biāo)系中的x軸坐標(biāo)變量,溫度點(diǎn)對象在渲染平面坐標(biāo)系中的y軸坐標(biāo)變量,溫度點(diǎn)對象的溫度變量,溫度點(diǎn)對象的生效標(biāo)識;其中,溫度點(diǎn)對象的生效標(biāo)識為記錄該溫度點(diǎn)對象是否生效的標(biāo)識,如果溫度點(diǎn)對象不生效,則在渲染生成溫場分布時(shí)不考慮該溫度點(diǎn)對象,如果溫度點(diǎn)對象生效,則在渲染生成溫場分布時(shí)考慮該溫度點(diǎn)對象。
接著,將待顯示地面溫場分布的機(jī)房的機(jī)房模型導(dǎo)入到unity3d中作為一個(gè)unity項(xiàng)目,該unity項(xiàng)目中攜帶機(jī)房模型以世界坐標(biāo)系為基準(zhǔn)的各種相關(guān)參數(shù)。根據(jù)該unity項(xiàng)目關(guān)于機(jī)房模型中的地面模型的相關(guān)參數(shù),建立渲染平面坐標(biāo)系,圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的地面模型的俯視圖。如圖5所示,o-xyz坐標(biāo)系為世界坐標(biāo)系,由于視角原因圖5中只能看到世界坐標(biāo)系的x軸和y軸,z軸垂直于紙面向外,地面模型為矩形abcd,長度ab=cd=a,寬度bc=ad=b,地面模型的中心點(diǎn)在世界坐標(biāo)系中的位置坐標(biāo)為(xc,yc),建立渲染平面坐標(biāo)系o-xy,使得該渲染平面坐標(biāo)系的原點(diǎn)與地面模型的a點(diǎn)相重合,該渲染平面坐標(biāo)系的x軸與地面模型的ab邊相重合,且x軸的量程為a/b,該渲染平面坐標(biāo)系的y軸與地面模型的ad邊相重合,且y軸的量程為1。
對應(yīng)的具體過程的代碼如下:
在建立圖5所示的渲染平面坐標(biāo)系之后,可以獲知地面模型與該渲染平面坐標(biāo)系之間的位置關(guān)系,進(jìn)而可以將位于地面模型上的傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)轉(zhuǎn)換為在渲染平面坐標(biāo)系中的位置坐標(biāo)。在進(jìn)行坐標(biāo)轉(zhuǎn)換之前,先要對unity3d著色器中預(yù)先聲明的地面對象進(jìn)行賦值,以在添加溫度點(diǎn)對象時(shí)使用;在本實(shí)施例中,表征地面對象的四維向量為(xc,yc,a,b)。
對應(yīng)的具體過程的代碼如下,續(xù)接在上段代碼之后:
如圖5所示,位于地面模型上的一個(gè)傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)為(x,y),則該傳感器模型在所述渲染平面坐標(biāo)系中的位置坐標(biāo)值為(x,y),其中,
該坐標(biāo)變換算法滿足本實(shí)施例中的任意傳感器模型的坐標(biāo)變換過程,因此可以將該坐標(biāo)變換算法預(yù)置放入unity3d著色器中,則在對傳感器模型進(jìn)行坐標(biāo)變換時(shí),直接調(diào)用該算法即可。在將傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在渲染平面坐標(biāo)系中的位置坐標(biāo)后,利用傳感器模型在渲染平面坐標(biāo)系中的位置坐標(biāo)值以及相應(yīng)的溫度值對溫度點(diǎn)對象進(jìn)行賦值,以進(jìn)行下一步的渲染工作。
對應(yīng)的具體過程的代碼如下:
vector3position=obj.transform.position;
//將傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在渲染平面坐標(biāo)系中的位置坐標(biāo)
vector4poi=newvector4(position.x,position.y,tempera,1);
tempshadermat.setvector(“_poi”+counter,poi);
//每個(gè)傳感器模型在渲染平面坐標(biāo)系中的x坐標(biāo)值、y坐標(biāo)值、溫度值和生效標(biāo)識共同構(gòu)成的四維向量賦值給相應(yīng)的溫度點(diǎn)對象
最后,unity3d著色器根據(jù)各生效狀態(tài)的溫度點(diǎn)對象在渲染平面坐標(biāo)系上的坐標(biāo)與溫度的對應(yīng)關(guān)系,利用溫度擴(kuò)散函數(shù)得出其他各坐標(biāo)點(diǎn)所對應(yīng)的溫度,在渲染平面上繪制渲染相應(yīng)的溫場分布圖,將溫場分布圖按比例放大或縮小后覆蓋在所述地面模型上,使得所述溫場分布圖與所述地面模型相重合,實(shí)現(xiàn)了對地面模型的溫場分布的顯示,即實(shí)現(xiàn)了對機(jī)房地面的溫場分布的顯示,如圖6-圖7所示,圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例顯示的機(jī)房地面溫場分布的示意圖,圖7示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例顯示的機(jī)房地面溫場分布的示意圖,從圖中可以看出,在非正方形的機(jī)房地面上,溫度均以 圓形方式擴(kuò)散影響范圍,符合溫度擴(kuò)散規(guī)律。
圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種基于unity3d著色器顯示機(jī)房地面溫場分布的裝置的示意圖。如圖8所示,該基于unity3d著色器顯示機(jī)房地面溫場分布的裝置800包括:
模型導(dǎo)入單元810,適于將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中。
渲染平面坐標(biāo)系建立單元820,適于建立渲染平面坐標(biāo)系;所述渲染平面坐標(biāo)系的x軸平行于所述機(jī)房模型中的地面模型的長邊,y軸平行于所述地面模型的寬邊,x軸與y軸的量程的比例等于所述地面模型的長寬比例。
坐標(biāo)變換單元830,適于將位于所述地面模型上的各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo)。
渲染處理單元840,適于根據(jù)各傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo),利用unity3d著色器在所述渲染平面坐標(biāo)系中進(jìn)行溫場分布渲染,將渲染得到的溫場分布圖按比例放大或縮小后覆蓋在所述地面模型上,使得所述溫場分布圖與所述地面模型相重合。
可見,圖8所示的裝置對于待顯示地面溫場分布的機(jī)房,將機(jī)房模型導(dǎo)入unity3d中作為unity項(xiàng)目,根據(jù)該unity項(xiàng)目中的相關(guān)參數(shù),建立渲染平面坐標(biāo)系,該渲染平面坐標(biāo)系形成的渲染平面與機(jī)房模型中的地面模型的大小成比例、位置一致,實(shí)質(zhì)上成比例地重現(xiàn)了地面模型;將傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)變換為在渲染平面坐標(biāo)系中的位置坐標(biāo);則可知根據(jù)傳感器模型的溫度和在渲染平面坐標(biāo)系中的位置坐標(biāo)所渲染出的在渲染平面上的溫場分布實(shí)質(zhì)上反映了地面模型上的溫場分布情況,將渲染后得到的溫場分布圖按比例放大或縮小后重合覆蓋在所述地面模型上,實(shí)現(xiàn)了在該地面模型上顯示溫場分布的效果。
依據(jù)此方案,由于渲染平面坐標(biāo)系所形成的渲染平面與地面模型的長寬等比例性,保證了最終顯示的地面溫場分布的正確性,不會發(fā)生扭曲和變形;又由于該方案的粒度較小靈活性較高,當(dāng)機(jī)房中的溫度傳感器的數(shù)量或位置發(fā)生變化時(shí),可以動態(tài)地變化機(jī)房模型中的傳感器模型,動態(tài)地進(jìn)行相應(yīng)的溫場分布的渲染;使得機(jī)房的運(yùn)維人員可以在unity3d機(jī)房模型展示界 面中直觀地看到機(jī)房地面各區(qū)域的溫度高低和對比,有利于對機(jī)房環(huán)境及運(yùn)行情況進(jìn)行有效地監(jiān)控。
圖9示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的一種基于unity3d著色器顯示機(jī)房地面溫場分布的裝置的示意圖。如圖9所示,該基于unity3d著色器顯示機(jī)房地面溫場分布的裝置900包括:預(yù)處理單元910、模型導(dǎo)入單元920、渲染平面坐標(biāo)系建立單元930、坐標(biāo)變換單元940和渲染處理單元950;其中,模型導(dǎo)入單元920、渲染平面坐標(biāo)系建立單元930、坐標(biāo)變換單元940、渲染處理單元950分別與圖8所示的模型導(dǎo)入810、渲染平面坐標(biāo)系建立單元820、坐標(biāo)變換單元830、渲染處理單元840具有對應(yīng)相同的功能,對于相同的部分則不再贅述。
預(yù)處理單元910,適于在模型導(dǎo)入單元920將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中之前,在unity3d著色器中預(yù)先聲明地面對象,該地面對象的變量包括:該地面對象的長度變量、寬度變量和位置坐標(biāo)變量。
在本發(fā)明的一個(gè)實(shí)施例中,渲染平面坐標(biāo)系建立單元930,適于從所述機(jī)房模型中獲取所述地面模型的長度值、寬度值和在世界坐標(biāo)系中的位置坐標(biāo)值;將所述長度值賦值給unity3d著色器中預(yù)先聲明的長度變量,將所述寬度值賦值給unity3d著色器中預(yù)先聲明的寬度變量,將所述地面模型在世界坐標(biāo)系中的位置坐標(biāo)值賦值給unity3d著色器中預(yù)先聲明的位置坐標(biāo)變量;根據(jù)被賦值的地面對象的長度變量、寬度變量和位置坐標(biāo)變量,建立所述渲染平面坐標(biāo)系。
在本發(fā)明的一個(gè)實(shí)施例中,坐標(biāo)變換單元940,適于從所述機(jī)房模型中獲取位于所述地面模型上的各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)值;根據(jù)所述地面模型的長度值、寬度值和在世界坐標(biāo)系中的位置坐標(biāo)值,將各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)值變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo)值。
其中,在一個(gè)具體的實(shí)施例中,坐標(biāo)變換單元940,適于通過如下方式將各傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)值變換為在所述渲染平面坐標(biāo)系中的位置坐標(biāo)值:
所述地面模型的長度值為a,寬度值為b,所述地面模型在世界坐標(biāo)系 中的位置坐標(biāo)值包括該地面模型的中心點(diǎn)在世界坐標(biāo)系中的位置坐標(biāo)值(xc,yc);對于一個(gè)傳感器模型,該傳感器模型在世界坐標(biāo)系中的位置坐標(biāo)值為(x,y),則該傳感器模型在所述渲染平面坐標(biāo)系中的相對位置坐標(biāo)值為(x,y),
在本發(fā)明的一個(gè)實(shí)施例中,預(yù)處理單元910,進(jìn)一步適于在模型導(dǎo)入單元920將待顯示機(jī)房的機(jī)房模型導(dǎo)入到unity3d中之前,在unity3d著色器中預(yù)先聲明多個(gè)溫度點(diǎn)對象,每個(gè)溫度點(diǎn)對象的變量包括:該溫度點(diǎn)對象的位置坐標(biāo)變量,該溫度點(diǎn)對象的溫度變量。
在此情況下,渲染處理單元950,適于將各傳感器模型與unity3d著色器中預(yù)先聲明的多個(gè)溫度點(diǎn)對象建立一一對應(yīng)關(guān)系;對于每個(gè)傳感器模型,將該傳感器模型在所述渲染平面上的相對位置坐標(biāo)值賦值給對應(yīng)的溫度點(diǎn)對象的位置坐標(biāo)變量,將該傳感器模型的溫度值賦值給對應(yīng)的溫度點(diǎn)對象的溫度變量;根據(jù)被賦值的各溫度點(diǎn)對象的位置坐標(biāo)變量和溫度變量,利用unity3d著色器在所述渲染平面上進(jìn)行溫場分布渲染。
在本發(fā)明的一個(gè)實(shí)施例中,每個(gè)溫度點(diǎn)對象的變量還包括:該溫度點(diǎn)對象的生效標(biāo)識;則渲染處理單元950,進(jìn)一步適于在根據(jù)被賦值的各溫度點(diǎn)對象的位置坐標(biāo)變量和溫度變量,利用unity3d著色器在所述渲染平面上進(jìn)行溫場分布渲染之前,將所述被賦值的各溫度點(diǎn)對象中的一個(gè)或多個(gè)溫度點(diǎn)對象的生效標(biāo)識設(shè)置為生效狀態(tài);根據(jù)生效標(biāo)識設(shè)置為生效狀態(tài)的各溫度點(diǎn)對象的位置坐標(biāo)變量和溫度變量,利用unity3d著色器在所述渲染平面上進(jìn)行溫場分布渲染。
需要說明的是,圖8-圖9所示裝置的各實(shí)施例與圖4-圖7所示的各實(shí)施例對應(yīng)相同,上文中已有詳細(xì)說明,在此不再贅述。
綜上所述,本發(fā)明提供的技術(shù)方案通過保證所建立的渲染平面坐標(biāo)系所形成的渲染平面與地面模型的長寬等比例性,保證了最終顯示的地面溫場分布的正確性,不會發(fā)生扭曲和變形;又通過將技術(shù)方案小粒度化,使得方案中可以靈活地變化溫度點(diǎn)對象,當(dāng)機(jī)房中的溫度傳感器的數(shù)量或位置發(fā)生變 化時(shí),可以動態(tài)地變化機(jī)房模型中的傳感器模型,動態(tài)地進(jìn)行相應(yīng)的溫場分布的渲染;使得機(jī)房的運(yùn)維人員可以在unity3d機(jī)房模型展示界面中直觀地看到機(jī)房地面各區(qū)域的溫度高低和對比,有利于對機(jī)房環(huán)境及運(yùn)行情況進(jìn)行有效地監(jiān)控。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。