楊 瑛,劉文文,吳方貴
(合肥工業(yè)大學(xué)儀器科學(xué)與光電工程學(xué)院,合肥 230009)
基于GPU的可視化測(cè)量?jī)x器軟件設(shè)計(jì)
楊 瑛,劉文文,吳方貴
(合肥工業(yè)大學(xué)儀器科學(xué)與光電工程學(xué)院,合肥 230009)
提出利用顯卡圖形處理單元(graphics processing units,GPU)的并行信息處理能力解決儀器軟件在執(zhí)行海量數(shù)據(jù)處理、建模、渲染以及交互所面臨的開(kāi)銷過(guò)大的難題,基于Direct X 11的計(jì)算著色器(compute shader,CS)實(shí)現(xiàn)海量測(cè)量數(shù)據(jù)的處理和建模以及高速推送渲染,建立在GPU內(nèi)實(shí)現(xiàn)海量數(shù)據(jù)模型上點(diǎn)的拾取模塊,以提高儀器可視化測(cè)量中的交互執(zhí)行;實(shí)驗(yàn)比對(duì)證實(shí)了基于GPU的可視化測(cè)量?jī)x器軟件的高執(zhí)行效率;研究為挖掘可視化測(cè)量?jī)x器硬件能力、合理配置儀器CPU與GPU開(kāi)銷、在整體上提高儀器運(yùn)行效率提供了一條有價(jià)值的技術(shù)路徑。
儀器軟件;可視化測(cè)量;GPU并行運(yùn)算;Direct X 11
隨著數(shù)字技術(shù)的突飛猛進(jìn),越來(lái)越多的測(cè)量?jī)x器需要高效和高質(zhì)量的顯示以實(shí)現(xiàn)儀器測(cè)量結(jié)果的可視化測(cè)量。在常規(guī)儀器設(shè)計(jì)的理念中,儀器數(shù)據(jù)采集、控制、數(shù)據(jù)處理、建模渲染和交互等全部信息處理是基于CPU的,因此,在儀器硬件能力有限的條件下,難以實(shí)現(xiàn)高效高質(zhì)量的測(cè)量顯示。如何挖掘顯卡處理單元(GPU)的并行信息處理能力、顯著提升測(cè)量?jī)x器的數(shù)據(jù)采集處理、控制、數(shù)據(jù)處理、建模渲染和交互的效率和容量,已經(jīng)成為可視化測(cè)量?jī)x器領(lǐng)域亟待解決的關(guān)鍵問(wèn)題,這對(duì)降低可視化測(cè)量?jī)x器制造成本,增加儀器制造商的市場(chǎng)競(jìng)爭(zhēng)力具有重要的意義。
依托某委托項(xiàng)目,對(duì)某款電子儀器配套三維可視化分析顯示功能,以實(shí)現(xiàn)在低端硬件設(shè)備上實(shí)現(xiàn)海量測(cè)試信號(hào)數(shù)據(jù)的高效處理渲染和可視化測(cè)量關(guān)鍵技術(shù)的突破,使其儀器產(chǎn)品在顯示效率和效果以及軟件開(kāi)發(fā)技術(shù)上處于領(lǐng)先,以提升企業(yè)和產(chǎn)品的整體技術(shù)水平和競(jìng)爭(zhēng)力。該儀器軟件所面臨的技術(shù)難點(diǎn)是在對(duì)CPU占用高約束的條件下,面對(duì)海量測(cè)試信號(hào)數(shù)據(jù)實(shí)現(xiàn)三維顯示幀率要求高、要求特殊的推送效果、高效的可視化測(cè)量交互,包括三維和二維顯示切換流暢、精準(zhǔn)操控以及高精度標(biāo)記測(cè)量結(jié)果等。鑒此,提出利用顯卡GPU強(qiáng)大的并行計(jì)算能力,開(kāi)發(fā)基于GPU的儀器可視化測(cè)量軟件,將海量數(shù)據(jù)處理、建模、渲染和拾取工作推入GPU內(nèi)進(jìn)行,實(shí)現(xiàn)儀器信息處理和渲染交互功能的高效,從而把有限的CPU資源用作儀器的測(cè)量和控制,以此提升儀器整體性能以及儀器軟件設(shè)計(jì)技術(shù)上的先進(jìn)性。
目前Windows Direct X Graphics和OpenGL是主流顯卡支持的三維開(kāi)發(fā)平臺(tái),考慮到高效率的現(xiàn)實(shí)需求以及市場(chǎng)認(rèn)知度,軟件選擇基于Direct3D11 API編程實(shí)現(xiàn)軟件開(kāi)發(fā),借助于GPU的并行運(yùn)算能力提高數(shù)據(jù)分析和處理以及渲染與交互的速度,研究三維可視化測(cè)量中的關(guān)鍵問(wèn)題。利用Direct3D11定義的CPU與GPU的信息交換機(jī)制,建立相應(yīng)模塊,在GPU中實(shí)現(xiàn)高效推送建模渲染以及精確高效拾取可視化測(cè)量結(jié)果。
1.1 Direct3D11渲染管線、著色器及效果
Direct3D通常支持在CPU中組織表征三維模型的頂點(diǎn)數(shù)據(jù),隨后將這些頂點(diǎn)導(dǎo)入渲染管線(見(jiàn)圖1虛線部分)處理成能夠在顯示器上顯示的像素,這一過(guò)程通常在顯卡中進(jìn)行。渲染管線是顯示芯片內(nèi)部處理圖形信號(hào)的相互獨(dú)立的并行處理單元,具體執(zhí)行從頂點(diǎn)數(shù)據(jù)到圖像數(shù)據(jù)的處理過(guò)程。一條渲染管線可以劃分成一序列可以并行和按照固定順序進(jìn)行的階段(Stage),見(jiàn)圖1。在硬件上,階段可以理解為執(zhí)行一種特定任務(wù)專門(mén)的并行處理單元,渲染管線的每個(gè)階段都從它的前一階段接收輸入,然后把輸出發(fā)給隨后的階段。
圖1 圖形渲染管道
由于硬件渲染架構(gòu)的更新,每一個(gè)著色階段都利用通用著色核實(shí)現(xiàn)相同的功能,同時(shí),每一個(gè)特定的著色階段都提供各自的額外功能。在通用著色核中,無(wú)論是常數(shù)、紋理或是緩存都被視為資源直接或者通過(guò)采樣器傳遞給著色器代碼進(jìn)行處理,見(jiàn)圖1。
隨著顯卡的技術(shù)進(jìn)步,渲染管線變得越來(lái)越強(qiáng)大,渲染管線上的著色器種類越來(lái)越多,功能越來(lái)越細(xì)膩。除了渲染管線相關(guān)的著色器之外,D3D11新添加了計(jì)算著色器(Computer Shader,CS)。計(jì)算著色器是Direct3D中添加的一個(gè)新的獨(dú)立于圖形渲染管線的可編程著色器階段,它與其他著色器很相似,但適用于GPGPU應(yīng)用,適用于通用計(jì)算,不受圖形應(yīng)用的限制[1]。因此,本儀器軟件確保高效率執(zhí)行的策略是利用CS在GPU中進(jìn)行海量測(cè)量信號(hào)數(shù)據(jù)的預(yù)處理、建模、推送、拾取等功能滿足項(xiàng)目的高效要求,同時(shí)使得執(zhí)行對(duì)CPU的占用達(dá)到最小。
1.2 海量測(cè)量數(shù)據(jù)的預(yù)處理
常規(guī)的Direct3D編程架構(gòu)中需要在應(yīng)用程序中編寫(xiě)C++代碼執(zhí)行輸入裝配階段的操作,見(jiàn)圖1。該階段的任務(wù)是將測(cè)量數(shù)據(jù)重組成三維頂點(diǎn),通過(guò)創(chuàng)建的頂點(diǎn)資源將頂點(diǎn)數(shù)據(jù)導(dǎo)進(jìn)入GPU,基本操作包括創(chuàng)建輸入緩存、創(chuàng)建輸入布局對(duì)象、綁定對(duì)象、指定元圖渲染格式、調(diào)用繪制方法等。考慮到儀器軟件需要對(duì)海量測(cè)量數(shù)據(jù)進(jìn)行預(yù)處理,包括從時(shí)域到頻域數(shù)據(jù)轉(zhuǎn)換、對(duì)數(shù)變換和平滑處理等,如果使用常規(guī)編程,則預(yù)處理要在CPU中執(zhí)行,面對(duì)海量測(cè)量數(shù)據(jù)這一過(guò)程的開(kāi)銷是巨大的,并造成對(duì)CPU的大量占用。
相對(duì)于CPU,GPU最大的特點(diǎn)是晶體管主要被用于執(zhí)行計(jì)算,存儲(chǔ)部件很少,GPU內(nèi)部獨(dú)特的架構(gòu)使得大量線程同時(shí)運(yùn)算成為現(xiàn)實(shí)。因此,GPU具有強(qiáng)大的浮點(diǎn)運(yùn)算能力和較高的數(shù)據(jù)傳輸能力,主要體現(xiàn)在GPU與顯存之間帶寬最高可達(dá)288 GB/s,系統(tǒng)內(nèi)存到顯存的帶寬為15.75 GB/s,這些特點(diǎn)為GPU應(yīng)用于數(shù)學(xué)計(jì)算提供了豐富的功能和強(qiáng)大的能力。文獻(xiàn)[2-4]綜合說(shuō)明GPU通用計(jì)算是一種新的高性能運(yùn)算,利用GPU可以加速海量數(shù)據(jù)處理,如利用GPU完成快速傅立葉變換[5]。
CS在GPU中執(zhí)行多線程運(yùn)算,線程是CS的基本處理單元,具體過(guò)程包括:1)為CS創(chuàng)建并初始化資源(常量緩存、結(jié)構(gòu)緩存和可讀寫(xiě)結(jié)構(gòu)緩存);2)設(shè)置CS狀態(tài),即設(shè)定線程組數(shù)量以及每個(gè)線程組中包含的線程數(shù)量,在線程組內(nèi)的線程之間可以共享數(shù)據(jù)或互相同步;3)調(diào)用ID3D11DeviceContext::Dispatch方法開(kāi)啟一定數(shù)量的線程組,執(zhí)行計(jì)算著色器中的命令并取回運(yùn)算結(jié)果。因此,儀器軟件借助于CS在GPU中實(shí)現(xiàn)海量數(shù)據(jù)預(yù)處理,使得預(yù)處理更高效,避免了對(duì)CPU的過(guò)多占用。
見(jiàn)圖1和2,首先把預(yù)處理所需要的參數(shù)以常量緩存的方式從CPU傳遞到GPU;儀器采集的生測(cè)量數(shù)據(jù)直接保存在結(jié)構(gòu)緩存資源中,通過(guò)著色器資源視圖綁定到渲染管線,生數(shù)據(jù)進(jìn)入CS_FFT(),執(zhí)行FFT計(jì)算、對(duì)折和取模計(jì)算。由于生測(cè)量數(shù)據(jù)是一維數(shù)據(jù),數(shù)據(jù)容量明顯小于常規(guī)三維頂點(diǎn)的數(shù)據(jù)容量,從CPU到GPU所消耗的時(shí)間大大減少。
圖2 數(shù)據(jù)預(yù)處理流程
一個(gè)資源可以通過(guò)不同的資源視圖被綁定到多個(gè)渲染管線階段,故將可讀寫(xiě)結(jié)構(gòu)緩存Buffer Out1通過(guò)無(wú)序訪問(wèn)視圖綁定到CS_FFT()輸出,用來(lái)存儲(chǔ)傅立葉變換的計(jì)算結(jié)果,也可以通過(guò)著色器資源視圖將BufferOut1綁定為計(jì)算著色器CS_Q()的輸入緩存,完成取對(duì)數(shù)運(yùn)算。CS_Q()的輸出緩存BufferOut2作為計(jì)算著色器CS_P()的輸入資源,進(jìn)行平滑處理;根據(jù)用戶的需要(常量緩存中的數(shù)據(jù))判斷是否要進(jìn)行平滑處理,計(jì)算著色器CS_P()的輸出緩存Bffer-Out3即預(yù)處理的結(jié)果。預(yù)處理的結(jié)果保存在GPU的輸出緩存中,可使用ID3D11DeviceContext::CopyResource()方法直接拷貝到頂點(diǎn)緩存進(jìn)入渲染管線的頂點(diǎn)著色階段。由于該方法直接在GPU內(nèi)讀寫(xiě),速度飛快。
[10] Toshi Yoshihara & James R. Holmes, “Can China Defend a ‘Core Interest’ in the South China Sea?”, The Washington Quarterly, Spring 2011, pp. 45-59.
1.3 海量測(cè)量數(shù)據(jù)的三維推送渲染
本儀器軟件在海量數(shù)據(jù)快速建模的基礎(chǔ)上還要求支持建模數(shù)據(jù)動(dòng)態(tài)更新的三維推送渲染。在三維推送渲染場(chǎng)景中,每一幀要求組織新數(shù)據(jù),與前一幀的部分舊數(shù)據(jù)合并重新構(gòu)建三維模型并進(jìn)行渲染,形成測(cè)量結(jié)果流動(dòng)的視覺(jué)效果。實(shí)現(xiàn)推送渲染效果歸結(jié)為對(duì)GPU資源的訪問(wèn)操作。常規(guī)采用ID3D11DeviceContext::Map()方法獲取頂點(diǎn)緩存的資源指針并鎖住頂點(diǎn)緩存,通過(guò)資源指針操控頂點(diǎn)緩存中的數(shù)據(jù),移動(dòng)資源中的頂點(diǎn)數(shù)據(jù)、拷貝新的頂點(diǎn)數(shù)據(jù)進(jìn)入頂點(diǎn)緩存。在此需要采用D3D11_MAP_WRITE_NO_OVERWRITE標(biāo)識(shí)控制系統(tǒng)以覆蓋的方式部分地更新頂點(diǎn)緩存中的數(shù)據(jù),但需要自行處理CPU與GPU對(duì)頂點(diǎn)資源訪問(wèn)時(shí)的沖突問(wèn)題,這不僅給開(kāi)發(fā)增添了難度,而且研究發(fā)現(xiàn)由于移動(dòng)和拷貝的是三維頂點(diǎn)數(shù)據(jù),推送渲染幀率不能滿足要求。因此,常規(guī)的方法難以實(shí)現(xiàn)高效的推送渲染。
頂點(diǎn)著色器執(zhí)行的常規(guī)工作是對(duì)頂點(diǎn)緩存資源中的頂點(diǎn)數(shù)據(jù)進(jìn)行坐標(biāo)變換、光照處理等處理。本儀器軟件將全部測(cè)量數(shù)據(jù)輸入計(jì)算著色器進(jìn)行預(yù)處理后送入頂點(diǎn)著色器,在頂點(diǎn)著色器在執(zhí)行常規(guī)工作之前執(zhí)行將頂點(diǎn)緩存中的一維數(shù)據(jù)裝配成為三維頂點(diǎn)的任務(wù),并根據(jù)一維數(shù)據(jù)的數(shù)值實(shí)現(xiàn)著色,在推送渲染時(shí)通過(guò)重新裝配頂點(diǎn)數(shù)據(jù)實(shí)現(xiàn)三維模型的更新。由于采用在頂點(diǎn)著色器中將一維數(shù)據(jù)裝配成為三維頂點(diǎn)并建立更新三維模型的策略,避免了海量數(shù)據(jù)的移動(dòng)和拷貝對(duì)推送渲染幀率的制約。
圖3 效果文件中頂點(diǎn)著色器的代碼
見(jiàn)圖3,D3D11定義的輸入裝配階段生成了系統(tǒng)頂點(diǎn)ID值,其語(yǔ)義符為SV_VertexID,本儀器軟件利用頂點(diǎn)ID構(gòu)建三維頂點(diǎn)坐標(biāo)x/y/z(時(shí)間/幅值/頻率)值。在CPU創(chuàng)建色彩紋理資源,將紋理資源通過(guò)定義在效果文件中的外部變量傳遞到GPU中,在頂點(diǎn)著色階段,根據(jù)頂點(diǎn)的Y值確定頂點(diǎn)紋理坐標(biāo),通過(guò)像素著色器的紋理采樣來(lái)實(shí)現(xiàn)著色,隨后執(zhí)行頂點(diǎn)著色器的常規(guī)工作。當(dāng)推送渲染時(shí),依據(jù)對(duì)頂點(diǎn)ID的特定變換,重新構(gòu)建三維頂點(diǎn)坐標(biāo)x/y/z值,產(chǎn)生數(shù)據(jù)流動(dòng)的視覺(jué)效果,效果圖見(jiàn)圖4。
本儀器軟件中,從CPU拷貝到GPU的數(shù)據(jù)量遠(yuǎn)遠(yuǎn)小于常規(guī)算法中傳遞的數(shù)據(jù)量,數(shù)據(jù)預(yù)處理和動(dòng)態(tài)的三維建模均利用了GPU的高速并行處理能力,大大提高了顯示幀率,也降低了程序的復(fù)雜度,同時(shí)執(zhí)行對(duì)CPU的占用達(dá)到了最小。
圖4 動(dòng)態(tài)3D模型效果
1.4 快速拾取
拾取就是通過(guò)鼠標(biāo)點(diǎn)擊三維模型,輸出三維模型上鼠標(biāo)拾取點(diǎn)的坐標(biāo)。在儀器可視化測(cè)量領(lǐng)域,在海量數(shù)據(jù)模型上的拾取的關(guān)鍵問(wèn)題是速度和精度。近些年來(lái),逐漸出現(xiàn)了利用GPU加速的拾取算法。如張嘉華等提出利用幾何著色器進(jìn)行射線-幾何圖元求交運(yùn)算的GPU拾取算法[6];文獻(xiàn)[7-8]利用CS實(shí)現(xiàn)基于屏幕空間的點(diǎn)云拾取算法等。本儀器軟件中,拾取分成三個(gè)階段,第一階段是構(gòu)建視點(diǎn)與鼠標(biāo)拾取屏幕上的點(diǎn)形成的射線在世界坐標(biāo)系中的位置矢量和方向矢量,涉及屏幕上拾取點(diǎn)從屏幕坐標(biāo)系向世界坐標(biāo)系的變換,見(jiàn)圖5。這一操作在鼠標(biāo)拾取時(shí)只執(zhí)行一次,計(jì)算速度的壓力不大,在CPU中執(zhí)行計(jì)算即可。
圖5 拾取射線坐標(biāo)轉(zhuǎn)換過(guò)程
第二階段是在世界坐標(biāo)系內(nèi)計(jì)算射線與模型的交點(diǎn)。由于模型是三維的、由三角面片構(gòu)成,在模型上搜索射線與模型的交點(diǎn)需要遍歷所有三角面片,找出所有與該射線相交的三角面片。因此,首先需要設(shè)計(jì)一個(gè)計(jì)算模塊計(jì)算射線與特定三角面片交點(diǎn),最終獲得兩種結(jié)果:無(wú)交點(diǎn)或有交點(diǎn)、輸出該三角面片的頂點(diǎn),利用該模塊在世界空間中計(jì)算比較所有相交的三角面片的頂點(diǎn)與視點(diǎn)的距離,距離最小的即為拾取點(diǎn)。實(shí)際這一階段需要遍歷模型全部的三角面片,計(jì)算速度的壓力均比較大。常規(guī)算法是在CPU中遍歷所有三角面片,不僅效率低,而且對(duì)CPU占用大。
本儀器軟件將這一階段的工作全部移植到GPU內(nèi)執(zhí)行,見(jiàn)圖1和圖6。首先把世界坐標(biāo)系下射線的位置和方向向量以常量緩存的方式傳遞到GPU,然后將頂點(diǎn)緩存復(fù)制到結(jié)構(gòu)緩存BufferIn中,通過(guò)著色器資源視圖綁定BufferIn到計(jì)算著色器CS_T()的輸入階段。在CS_T()中,與頂點(diǎn)著色器中的裝配階段一樣將一維數(shù)據(jù)裝配為世界空間中的三維坐標(biāo),保存在可讀寫(xiě)結(jié)構(gòu)緩存Buffer T中。最后將Buffer T綁定到計(jì)算著色器CS_Pick()輸入階段,利用CS_Pick()完成三角面片的遍歷,并將與拾取射線相交的三角面片所對(duì)應(yīng)的輸出緩存設(shè)為1,保存在可讀寫(xiě)結(jié)構(gòu)緩存Buffer P中。由于對(duì)三角面片的遍歷過(guò)程在GPU進(jìn)行,確保了拾取過(guò)程的快速執(zhí)行。
第三階段從GPU中拷貝出可讀寫(xiě)結(jié)構(gòu)緩存,在CPU中計(jì)算相交三角形對(duì)應(yīng)的頂點(diǎn)在世界空間中與視點(diǎn)的距離,最小距離對(duì)應(yīng)的頂點(diǎn),即拾取點(diǎn)。
整個(gè)拾取過(guò)程是在GPU內(nèi)利用Direct X11的CS進(jìn)行運(yùn)算,得益于GPU強(qiáng)大的并行計(jì)算能力,與在CPU上運(yùn)行的算法相比,提高了拾取速度,并且數(shù)據(jù)量越大,速度優(yōu)勢(shì)越明顯。
圖6 拾取流程圖
實(shí)驗(yàn)使用的設(shè)備配置為CPU:酷睿i3 2130及GPU:AMD 7450的PC,通過(guò)對(duì)不同數(shù)據(jù)量建模測(cè)試,圖7從左到右分別呈現(xiàn)的是數(shù)據(jù)量為1024*600、1024*300、512*300的測(cè)量信號(hào)數(shù)據(jù)效果圖,分別得到靜態(tài)顯示和推送顯示狀態(tài)下的顯示幀率(fps),見(jiàn)表1和表2,顯然基于GPU的顯示幀率明顯高于基于CPU的顯示幀率;與靜態(tài)顯示相比推送顯示幀率下降不明顯。
圖7 不同數(shù)據(jù)量的靜態(tài)模型效果圖
表1 靜態(tài)顯示幀率
表2 推送顯示幀率
拾取試驗(yàn)中,建模數(shù)據(jù)個(gè)數(shù)最為1 024*600。點(diǎn)擊后顯示選擇的點(diǎn)坐標(biāo)與在CPU中進(jìn)行的拾取結(jié)果一致,說(shuō)明基于GPU的拾取結(jié)果是正確的,如圖8所示。表3呈現(xiàn)了拾取不同數(shù)據(jù)容量模型上點(diǎn)的耗時(shí)。拾取速度滿足了項(xiàng)目要求。
圖8 拾取示例
表3 拾取時(shí)間統(tǒng)計(jì)表
面對(duì)海量數(shù)據(jù)的分析處理和高效顯示的要求,論文提出了采用Direct3D11的計(jì)算著色器在GPU內(nèi)實(shí)現(xiàn)測(cè)量數(shù)據(jù)的預(yù)處理、3D模型和渲染以及交互的可視化測(cè)量軟件的設(shè)計(jì)策略,不僅實(shí)現(xiàn)了高效,還減小了軟件執(zhí)行對(duì)CPU的占用。開(kāi)發(fā)的儀器軟件實(shí)現(xiàn)了海量數(shù)據(jù)的高效分析處理、建模推送渲染以及交互,獲得了高速的數(shù)據(jù)流動(dòng)視覺(jué)效果,實(shí)現(xiàn)了高效準(zhǔn)確的可視化測(cè)量結(jié)果。論文提出的方法充分挖掘了儀器硬件資源的能力,為面向海量測(cè)量信息的可視化測(cè)量?jī)x器軟件設(shè)計(jì)探索了一條可行的技術(shù)路徑,對(duì)于降低可視化測(cè)量?jī)x器成本具有重要現(xiàn)實(shí)意義。
[1]姚 莉,高 瞻,肖 健,等.3D圖形編程基礎(chǔ)—基于Direct X 11[M].北京:清華大學(xué)出版社,2012.
[2]姚 旺,胡 欣,劉 飛,等.基于GPU的高性能并行計(jì)算技術(shù)[J].計(jì)算機(jī)測(cè)量與控制,2014,12:4160-4162.
[3]趙炳財(cái).基于GPU技術(shù)的并行運(yùn)算應(yīng)用研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2012.
[4]丁 科,譚 營(yíng).GPU通用計(jì)算及其在計(jì)算智能領(lǐng)域的應(yīng)用[J].智能系統(tǒng)學(xué)報(bào),2015,01:1-11.
[5]何 濤,朱岱寅.大點(diǎn)數(shù)一維FFT的GPU設(shè)計(jì)實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2013,11:34-41.
[6]張嘉華,梁 成,李桂清.GPU三維圖元拾?。跩].工程圖學(xué)學(xué)報(bào),2009,01:46-52.
[7]付昕樂(lè),王晏民,黃 明.基于GPU的點(diǎn)云拾?。跩].測(cè)繪通報(bào),2013,S1:54-57.
[8]付昕樂(lè).精細(xì)三維空間數(shù)據(jù)交互可視化研究[D].北京:北京建筑大學(xué),2014.
[9]Frank D.Introduction to 3D game programming with direct X 11 [M].USA:Mercury Learning&Information,2012.
[10]Akenine-Moller T,Haines E.Real-time rendering[M].2nded.Wellesley:A K Peters,2008.
Design of Visual Measurement Instrument Software Based on GPU
Yang Ying,Liu Wenwen,Wu Fanggui
(School of Instrument Science and Opto-electronics Engineering,Hefei University of Technology,Hefei 230009,China)
A strategy of designing the visual measurement instrument software,making use of the graphics card’s parallel processing abilities to decrease the overhead of processing massive data,modeling and rendering 3D graph as well as implementing interaction,is proposed in this paper.Based on Direct3D11’s Compute Shader,the instrument software is designed to rapidly achieve preprocessing mass measurement data,modeling 3D graph,pushing render implementing in GPU.And a software model is built to pick up a point on 3D model with mass vertexes implementing in GPU also,with which the interactive speed is increased sharply.The high implementing efficiency of the visual measurement instrument software is verified through experiments.The designing strategy provides a valuable technical path for making the best of hardware capabilities of the measurement instruments’hardware,reasonably balancing the overhead of CPU and GPU,and then improving the overall implementation efficiency of the instrument.
instrument software;visualization measurement;parallel computation;Direct X 11
1671-4598(2016)08-0150-04
10.16526/j.cnki.11-4762/tp.2016.08.040
:TP391.41
:A
2016-01-21;
:2016-02-25。
中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金(2012HGBZ0629)。
楊 瑛(1991-),女,安徽銅陵人,碩士研究生,主要從事儀器軟件設(shè)計(jì)方向的研究。