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

基于GPU底層渲染的海量采集數據參數曲線顯示研究?

2021-05-25 02:54:32高偉亮李大龍
艦船電子工程 2021年4期

夏 棟 高偉亮 李大龍 馬 玲

(1.海軍航空大學青島校區 青島 266041)(2.佛吉亞(即墨)排氣控制技術有限公司 青島 266200)

1 引言

在數據分析領域數據曲線顯示直觀,是最常用的分析途徑[1~2]。由于采集器性能的提高[3],參數記錄數據量越來越大。以采集頻率1000Hz為例,1小時采集的數據個數將達到3,600,000個。高性能采集器的采集頻率甚至可以達到MHz甚至GHz[4],對應采集數據量也會達到每秒幾百萬甚至更多。如此巨大的數據量采用Matlab或GDI等普通繪制軟件會出現程序卡滯甚至程序崩潰[5]。DirectX利用GPU通過硬件底層完成圖像渲染,不占用CPU資源,畫圖效率高[6~7]。通過DirectX完成曲線作圖能夠有效解決海量記錄數據的曲線回放問題,本文將研究利用DirectX實現海量記錄數據的曲線回放繪制。

2 DirectX曲線繪制

2.1 DirectX對象渲染過程

DirectX采用三維渲染技術,為提高渲染效率DirectX對圖形對象的渲染通過兩個處理步驟組成:

1)坐標轉換和光照效果(簡稱為T&L)。該步驟實現了三維自由空間到二維計算機屏幕坐標的轉換,該處理過程在DirectX中稱為頂點轉換流水線[8],在該步驟中自由空間的頂點坐標從前端送入GPU,在GPU內部完成若干處理和操作后,經過頂點坐標轉換和光照效果處理從另一端出來。在該階段DirectX通過設定一組坐標變換矩陣、視口及光線來控制T&L流水線處理過程;

2)光柵處理[9]。經過前面流水線處理的對象頂點在本步處理中,以點、線、三角形為基本圖元應用頂點的顏色屬性和紋理貼圖[10],并依據渲染設置狀態決定每個顯示像素的顏色值,最后在計算機屏幕上進行顯示。

這兩個處理步驟均在GPU(圖形處理器)上實現,并不占用CPU(中心處理器)資源[11]。在采集數據參數曲線繪制過程中,圖元只涉及到線,并且不用考慮紋理和光照效果。

圖1 坐標變換和光照渲染流水線

2.2 DirectX的坐標系[12]

DirectX采用三維渲染技術,而參數曲線顯示為二維作圖。為了實現DirectX下的二維作圖,需要進行科學的坐標變換與投影,因此首先要搞清楚各種坐標系的關系。DirectX包含了若干類坐標系以及不同類型坐標系之間的轉換以實現T&L渲染操作的控制,T&L流水線中坐標變換和坐標系主要包括:

1)局部坐標系、全局坐標系和全局變換。局部坐標系指對象或物體描述各頂點位置所使用的本地的坐標,也稱為本地坐標系。不同的渲染對象可以在三維空間中通過平移、旋轉和尺度壓縮,轉換到統一的坐標系中顯示,該坐標系稱為全局坐標系,對應變換過程稱為全局變換。

2)窺探坐標系和景觀變換。立體空間的物體在兩維空間(即計算機顯示器)顯示的原理與相機拍照的取景過程類似。以相機所在位置為參考點、相機窺探方向為坐標軸建立的坐標系稱為窺探坐標系,從全局坐標系到窺探坐標系的變換稱為景觀變換。

3)投影坐標系和投影變換。對象由世界坐標系變換到觀察坐標系后,三維物體被投影到二維平面上,原理類似于投影到虛擬的相機底片上,該變換過程稱為投影變換。以該底片中心為坐標原點建立的坐標系稱為投影坐標系,對應地,對象在該坐標系中的坐標稱為投影坐標。

4)屏幕坐標系和視區變換。計算機屏幕像素顯示的坐標值為整數型,該坐標稱為屏幕坐標。而投影坐標系的坐標取值為浮點型,將投影坐標系的浮點型坐標值轉化為計算機屏幕上可顯示的整數型像素坐標稱為視區變換。

2.3 參數曲線繪制

利用DirectX繪制參數曲線,本質上是二維作圖,這可以通過將三維空間對象正交投影到兩維空間來實現,如圖2所示。需要注意,正交投影在z軸上有一個視景范圍(znear~zfar),對象z坐標只有在該范圍內才能被投影到二維空間。因此在設置曲線上點的z坐標時,取值不能超出該范圍,否則曲線將不能顯示。另外,由于曲線繪制不涉及光照效應,為提高渲染效率,應將光照效應關掉。

圖2 正交投影效果示意圖

在DirectX中繪制曲線,可通過將數值點連成線來實現,連線的繪制可通過將繪制圖元設置為線段條帶(D3DPT_LINESTRIP)實現。生成參數曲線點的坐標取值方法如下:x坐標為時間,即采集參數某一固定數值發生的時刻;y坐標為采集的參數數值;z坐標可以在(znear~zfar)內任意取值。此時的參數曲線點坐標系為局部坐標系,參數曲線能夠在界面某區域正確顯示,還需要通過世界變換切換到世界坐標系中。由于不同參數的采集頻率不一致,如果參數數據來自不同的采集器,起始時間也會不同。設參數的采集頻率為f0,采集器的起始時間為t0。對于參數第n點的x坐標值可由下式得到。

3 采集數據參數曲線繪制坐標變換

在局部坐標系中,x軸為時間,y坐標為某個采集參數在x時刻對應的采集數值,這種顯示方式也是數據分析人員需要的。而在DirectX顯示坐標系中,x軸的顯示范圍為(-1,1),y軸的顯示范圍也是(-1,1),因此需要通過世界變換將曲線從局部坐標系變換到世界坐標系。由于還需要顯示坐標刻度、參數名等信息,并且同一面板需要顯示多條曲線,參數曲線顯示范圍一般不覆蓋整個顯示面板,因此從局部坐標系到世界坐標系的變換如圖3所示。

圖3 參數曲線從局部坐標系變換到世界坐標系

圖3中參數曲線從局部坐標系中的真實坐標變化到的坐標變化到屏幕顯示的世界坐標系,可以通過壓縮和平移兩個坐標變換來實現。這兩個坐標變換在DirectX中通過正確設置坐標壓縮變換矩陣和坐標平移變換矩陣實現,并且將兩者相乘得到新矩陣,將新矩陣設置為世界矩陣,用DirectX繪制線段條帶(D3DPT_LINESTRIP)圖元就可以得到正確顯示的參數曲線。在實際操作過程中,既可以先計算壓縮變換矩陣再計算平移變換矩陣,也可以先計算平移變換矩陣再計算壓縮變換矩陣,但是需要注意不同順序求得的矩陣取值會不同。本文采用先計算壓縮矩陣后計算平移矩陣的順序。

3.1 壓縮變換矩陣的計算

為提高GPU計算效率,DirectX提供了強大的矩陣運算庫。其中,D3DXMatrixScaling()函數實現了壓縮矩陣的計算。該函數有3個輸入變量和1個輸出變量,輸入變量sx、sy和sz分別為x軸、y軸和z軸上的壓縮因子,輸出變量pOut為需要計算得到的壓縮矩陣。只要計算出壓縮因子sx、sy和sz調用D3DXMatrixScaling()函數就可以得到。因為采用正交投影,z軸上的壓縮因子可以不考慮,一般設為sz=1.0,因此只需要計算出x軸和y軸上的壓縮因子sx和sy。

以圖3中參數數據為例,在局部坐標系中x(即參數采集時間)的取值范圍為(xmin~xmax),變換到世界坐標系后x的取值范圍為(x'min~x'max),那么x軸壓縮因子sx可由下式得到。

同理,在局部坐標系中y(即參數數值)的取值范圍為(ymin~ymax),變換到世界坐標系后y的取值范圍為(y'min~y'max),那么y軸壓縮因子sy可由下式得到。

3.2 平移變換矩陣的計算

壓縮變換確定了參數顯示尺度,參數顯示位置的確定則需要平移變換來實現。DirectX矩陣運算庫中D3DXMatrixTranslation()實現了平移矩陣的運算。該函數的3個輸入變量Δx、Δy和Δz分別為x軸、y軸和z軸的平移量,輸出變量pOut為需要計算得到的平移舉證。由于采用正交投影,z軸平移量可忽略,一般設為Δz=0.0,只需要計算x軸、y軸的平移量Δx和Δy。平移因子的計算比較復雜,x軸平移會造成同一面板中不同參數時間沒有對準,y軸平移錯誤會造成參數數值顯示錯誤。下面分別研究x軸平移量Δx和y軸平移量Δy的求解方法。

1)x軸平移量計算

要計算x軸平移量Δx,首先要知道顯示曲線的起始和終止時間。數據分析人員在分析數據時為了觀察細節,可能會對參數曲線進行時間尺度上的放大和縮小,即x數據的起止時間是隨著用戶選擇而變化。設用戶選擇的起始時刻為xmin,終止時刻為xmax,曲線顯示區域x軸范圍為(x'min~x'max)。x軸平移量的計算方法可由下式得到。

2)y軸平移量計算

y軸平移量Δy的計算方法與Δx計算時間相似。需要注意的是,數據分析人員為了對比不同參數數值,可能在同一個面板上顯示多條參數曲線,并且為方便對比分析人員可能會調整曲線的縱向位置(即顯示在y軸上的位置)。設某曲線調整y軸位置后y軸坐標顯示范圍為(y'min~y'max),對應參數真實值范圍為(ymin~ymax)。平移量Δy可由下式計算得到。

4 軟件設計及顯示結果

參數數據曲線回放軟件實現了以下基本功能:顯示多個參數的數值曲線,數值曲線的橫坐標(x軸)為時間,縱坐標(y軸)為參數不同時刻參數的取值。除此以外回放軟件還應具備的功能有:顯示數值刻度以便于分析人員觀察參數數值;根據分析人員設置的起止時間顯示一段時間內的參數曲線值;準確顯示固定時刻參數數值。根據需要實現的功能軟件界面設計如圖4所示。界面組成包括功能區、曲線顯示區和浮動的數值面板,曲線顯示區又由刻度軸顯示區和曲線繪制區組成。

圖4 參數曲線回放界面

功能區由命令按鈕組成,分析人員通過命令按鈕執行參數顯示屬性的設置,如放大、設置參數時間起始點、重繪等功能。曲線繪制區顯示多條參數曲線,刻度軸區域在參數曲線對應的y軸位置顯示刻度信息。數值面板將選定時刻參數的準確數值顯示在列表中。

根據前述DirectX操作和軟件設計需求進行軟件開發。以參數采集頻率1MHz為例,采集時間持續1h。參數曲線回放運行結果如圖5所示。根據運行結果,采用DirectX坐標變換渲染可以實現采集數據曲線準確回放,對多個參數的多條曲線進行回放時,程序流暢,顯示平滑,渲染效果遠好于GDI效果。

圖5 參數曲線回放程序運行結果

5 結語

隨著計算機技術的進步與發展,數據采集設備的帶寬越來越高,對應產生的采集數據數量巨大,使得采集數據的回放和分析變得困難,普通的GDI不能正常回放如此大量的數據。DirectX采用GPU實現硬件底層渲染,不占用計算機的CPU資源。DirectX通過正確的投影設置、坐標縮放/平移變換和合理的渲染圖元設置,能夠對參數巨量數據進行曲線回放。運行結果表明,利用DirectX實現參數數據曲線回放,程序運行流程,曲線顯示平滑,可以滿足數據分析的要求。

主站蜘蛛池模板: 国产午夜不卡| 欧美国产综合色视频| 久草国产在线观看| 日韩人妻少妇一区二区| 国产精品xxx| 久久精品aⅴ无码中文字幕 | 国产自产视频一区二区三区| 激情综合网激情综合| 婷婷色婷婷| 99无码中文字幕视频| 亚洲欧美在线综合一区二区三区 | 人妻91无码色偷偷色噜噜噜| 国产欧美性爱网| 午夜电影在线观看国产1区| 日韩成人高清无码| 中文字幕亚洲无线码一区女同| 日韩久草视频| 在线毛片网站| 99热这里只有精品久久免费| 色婷婷成人| 国产精品自在在线午夜| 精品中文字幕一区在线| 国产欧美综合在线观看第七页| 五月婷婷亚洲综合| 欧美黄网站免费观看| 国产精品第一区| a天堂视频在线| 亚洲精品高清视频| 88av在线| 2020最新国产精品视频| 天堂av综合网| 特级aaaaaaaaa毛片免费视频| 久久频这里精品99香蕉久网址| 五月婷婷伊人网| 亚洲人成在线精品| 一本无码在线观看| 激情乱人伦| 日本黄色a视频| 东京热高清无码精品| 青青青国产视频| 亚洲黄色高清| 欧美成人看片一区二区三区| 性色生活片在线观看| 成人蜜桃网| 女人18毛片久久| 日韩在线视频网站| 一级不卡毛片| 亚洲精品第一在线观看视频| 欧美一区福利| 亚洲第一av网站| 91啦中文字幕| 国产一级在线观看www色 | 免费人成视网站在线不卡| 香蕉精品在线| 国产在线观看精品| 国产成年女人特黄特色大片免费| 久久久受www免费人成| 亚洲天堂视频网站| 91精品专区国产盗摄| 欧美不卡在线视频| 亚洲日韩精品综合在线一区二区| 欧美成人免费午夜全| 国产AV毛片| 久久久久人妻一区精品色奶水 | 成人小视频网| 人妻精品久久无码区| 国产成人亚洲欧美激情| 99国产精品国产| 国产视频大全| 性视频一区| 免费日韩在线视频| 激情午夜婷婷| 久久96热在精品国产高清| 午夜啪啪福利| 九九九精品视频| 中文成人在线视频| 亚洲成人网在线观看| 国产人免费人成免费视频| 92午夜福利影院一区二区三区| 亚洲h视频在线| 国产在线观看99| 中文字幕色在线|