亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2021-05-25 02:54:32高偉亮李大龍
        艦船電子工程 2021年4期
        關(guān)鍵詞:投影繪制坐標系

        夏 棟 高偉亮 李大龍 馬 玲

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

        1 引言

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

        2 DirectX曲線繪制

        2.1 DirectX對象渲染過程

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

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

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

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

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

        2.2 DirectX的坐標系[12]

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

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

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

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

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

        2.3 參數(shù)曲線繪制

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

        圖2 正交投影效果示意圖

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

        3 采集數(shù)據(jù)參數(shù)曲線繪制坐標變換

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

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

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

        3.1 壓縮變換矩陣的計算

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

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

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

        3.2 平移變換矩陣的計算

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

        1)x軸平移量計算

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

        2)y軸平移量計算

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

        4 軟件設(shè)計及顯示結(jié)果

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

        圖4 參數(shù)曲線回放界面

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

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

        圖5 參數(shù)曲線回放程序運行結(jié)果

        5 結(jié)語

        隨著計算機技術(shù)的進步與發(fā)展,數(shù)據(jù)采集設(shè)備的帶寬越來越高,對應(yīng)產(chǎn)生的采集數(shù)據(jù)數(shù)量巨大,使得采集數(shù)據(jù)的回放和分析變得困難,普通的GDI不能正?;胤湃绱舜罅康臄?shù)據(jù)。DirectX采用GPU實現(xiàn)硬件底層渲染,不占用計算機的CPU資源。DirectX通過正確的投影設(shè)置、坐標縮放/平移變換和合理的渲染圖元設(shè)置,能夠?qū)?shù)巨量數(shù)據(jù)進行曲線回放。運行結(jié)果表明,利用DirectX實現(xiàn)參數(shù)數(shù)據(jù)曲線回放,程序運行流程,曲線顯示平滑,可以滿足數(shù)據(jù)分析的要求。

        猜你喜歡
        投影繪制坐標系
        Art on coffee cups
        解變分不等式的一種二次投影算法
        基于最大相關(guān)熵的簇稀疏仿射投影算法
        找投影
        找投影
        學生天地(2019年15期)2019-05-05 06:28:28
        放學后
        童話世界(2018年17期)2018-07-30 01:52:02
        解密坐標系中的平移變換
        坐標系背后的故事
        基于重心坐標系的平面幾何證明的探討
        在轉(zhuǎn)變中繪制新藍圖
        五月婷婷开心五月激情| 自拍偷拍亚洲一区| 内射爽无广熟女亚洲| 欧美日韩中文国产一区| 亚洲高清中文字幕精品不卡| 久久精品蜜桃美女av| 一边捏奶头一边高潮视频| 台湾佬自拍偷区亚洲综合| 国内久久婷婷精品人双人| 成年女人18毛片观看| 日韩精品中文字幕第二页| 天天躁日日躁狠狠躁欧美老妇小说| 国产成人精品999在线观看| 91精品国产免费青青碰在线观看| 国产精品成年人毛片毛片| 日韩经典午夜福利发布| 久久久亚洲精品无码| 亚洲AV日韩AV永久无码电影| 亚洲国产精品第一区二区三区 | 日韩 亚洲 制服 欧美 综合| 日本不卡一区二区三区在线 | 在线视频你懂的国产福利| 人妻少妇精品视频中文字幕国语 | 成人免费播放片高清在线观看| 国产毛片av最新视频| 国产av无码专区亚洲awww| 国产精品久久久久影视不卡| 国产精品久久av高潮呻吟| 无码av不卡一区二区三区| 无码午夜成人1000部免费视频| 制服丝袜视频国产一区| 国产成人高清亚洲一区二区| 国语自产精品视频在线看| 中文字幕人妻丝袜美腿乱| 精品国产AⅤ一区二区三区4区| 国产精品日本一区二区三区| 国产精品久久久天天影视| 无码人妻黑人中文字幕| 成人国产精品免费网站| 日本一区二区在线免费看| 亚洲一卡2卡3卡4卡5卡精品|