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

        ?

        基于Web的時變體數(shù)據(jù)的體繪制方法

        2020-04-29 13:03:16吳亞東
        計算機測量與控制 2020年4期
        關(guān)鍵詞:變體步態(tài)瀏覽器

        張 楨, 吳亞東,2

        (1.西南科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,四川 綿陽 621000; 2.四川輕化工大學(xué),四川 宜賓 644005)

        0 引言

        時變體數(shù)據(jù)是隨時間步長變化的單步態(tài)體數(shù)據(jù)的集合,也是科學(xué)數(shù)據(jù)的重要分支,分析時變體數(shù)據(jù)能夠獲取時變體數(shù)據(jù)的內(nèi)在關(guān)聯(lián),并獲悉數(shù)據(jù)隨時間變化的發(fā)展趨勢。而體繪制則是針對時變體數(shù)據(jù)的有力分析方法,體繪制是將三維數(shù)據(jù)集顯示為二維投影的技術(shù)[1],相比于面繪制[2],體繪制能夠直觀地呈現(xiàn)出體數(shù)據(jù)的三維模型,并能夠展示出數(shù)據(jù)的整體結(jié)構(gòu)特點[3]。然而,體繪制算法計算量龐大,目前的體繪制成像系統(tǒng)多集中在本地運行,采用C/S(客戶端/服務(wù)器)架構(gòu),用戶需要在計算機安裝特定的應(yīng)用軟件,并利用本地的圖形硬件實現(xiàn)體繪制算法,提升體繪制效率,因此,C/S架構(gòu)無法便捷的進行訪問,也難以實現(xiàn)跨平臺[4]。

        近年來,基于B/S(瀏覽器/服務(wù)器)架構(gòu)的科學(xué)數(shù)據(jù)繪制成像系統(tǒng)逐漸興起。B/S架構(gòu)具有易訪問、跨平臺等特點[5],同時WebGL的出現(xiàn)更使得瀏覽器能夠利用本地GPU進行高性能圖形渲染[6]。因此,基于B/S架構(gòu)硬件依賴小,同時兼顧跨平臺訪問和高性能的特點,本文提出了一種基于B/S架構(gòu)的時變體數(shù)據(jù)的體繪制系統(tǒng),該系統(tǒng)通過WebGL標(biāo)準(zhǔn)實現(xiàn)了光線投射體繪制算法,在瀏覽器端實現(xiàn)對體數(shù)據(jù)的體繪制及顯示,并支持實時交互。同時,通過優(yōu)化體數(shù)據(jù)的預(yù)處理過程,縮短了單步態(tài)體數(shù)據(jù)的繪制時間,減少單步態(tài)體數(shù)據(jù)繪制所占用的內(nèi)存空間,使得瀏覽器端能夠?qū)r變體數(shù)據(jù)集合全部載入,并逐步繪制顯示,以動畫的形式呈現(xiàn)出時變體數(shù)據(jù)的變化效果。最后,本文引入Isabel颶風(fēng)數(shù)據(jù)集進行案例測試,驗證本文方法的可行性。

        1 國內(nèi)研究現(xiàn)狀

        體繪制是對科學(xué)數(shù)據(jù)進行三維重建的方法之一,它直接由三維數(shù)據(jù)場生成在屏幕上顯示的二維圖像[7]。體繪制技術(shù)可以展示出科學(xué)數(shù)據(jù)的內(nèi)部結(jié)構(gòu),在描述定形物體上具有明顯的優(yōu)勢,因而成為了科學(xué)數(shù)據(jù)可視化最為廣泛采用的方法之一。

        近年來,在Web端進行體數(shù)據(jù)的體繪制得到了長足的發(fā)展,無需借助第三方的瀏覽器插件,純面向Web的可視化系統(tǒng)逐漸成為未來的發(fā)展趨勢[8]。但在早期工作中,體繪制計算量龐大,且硬件性能較低,B/S架構(gòu)的可視化系統(tǒng)主要集中在利用服務(wù)器端對數(shù)據(jù)進行處理并生成繪制結(jié)果,而瀏覽器端僅用于繪制結(jié)果的呈現(xiàn)[9]。高鵬[10]等利用VTK(Visualization Toolkit)可視化工具包,將數(shù)據(jù)在服務(wù)器端進行處理渲染,并生成二維圖片,瀏覽器通過加載二維圖片從而實現(xiàn)“偽3D”的圖像顯示,用戶在瀏覽器端實時生成交互請求,這些請求包括視角變換,縮放等,服務(wù)器根據(jù)交互請求進行繪制并生成新的二維圖片。雷輝等[11]實現(xiàn)了基于HTML5的醫(yī)學(xué)可視化系統(tǒng),服務(wù)器端利用DCMTK模塊對醫(yī)學(xué)數(shù)據(jù)進行解析,并繪制出結(jié)果,瀏覽器端采用圖像載入模塊加載繪制結(jié)果并呈現(xiàn)。侯曉帥等[12]提出的B/S架構(gòu)解決方案采用在服務(wù)器端進行圖像分析,并利用服務(wù)器的GPU加速技術(shù)繪制圖像,并將結(jié)果發(fā)送至瀏覽器,瀏覽器端采用HTML5和JavaScript技術(shù)開發(fā)顯示模塊用于呈現(xiàn)繪制結(jié)果。而隨著科學(xué)體數(shù)據(jù)的數(shù)據(jù)量日益龐大,單個服務(wù)器已無法滿足渲染要求,Robin M.Weiss[13]等使用集群服務(wù)器進行數(shù)據(jù)渲染,集群服務(wù)器將多個渲染引擎連在一起,為體數(shù)據(jù)的繪制提供強大的渲染能力。

        服務(wù)器端渲染出圖像結(jié)果并發(fā)送至瀏覽器的解決方案可以利用服務(wù)器的高性能,但服務(wù)器負(fù)載會隨著并發(fā)用戶的增長而提升,并發(fā)用戶過多會導(dǎo)致服務(wù)器延遲過高,運行緩慢,甚至崩潰。而WebGL的出現(xiàn)使得面向瀏覽器的體繪制方法發(fā)生了改變,它能夠直接調(diào)用本地計算機的GPU在瀏覽器展示3D模型,借助WebGL,可以直接在瀏覽器端對數(shù)據(jù)進行體繪制。Daniel Haehn等[14]開發(fā)了Slice:Drop可視化系統(tǒng),系統(tǒng)采用WebGL在HTML5的Canvas元素中進行3D圖像的繪制,并可以進行部分的交互,但該系統(tǒng)沒有實現(xiàn)直接體繪制的算法,比如光線投射算法[15]。

        基于上述工作,目前基于B/S架構(gòu)的科學(xué)體數(shù)據(jù)的體繪制主要面臨著以下問題:

        1)體繪制算法實現(xiàn)多在服務(wù)器端進行,服務(wù)器需承擔(dān)數(shù)據(jù)預(yù)處理和繪制,繪制結(jié)果以二維圖片的形式傳至瀏覽器端,服務(wù)器的負(fù)載會隨并發(fā)用戶數(shù)量的上升而增長;

        2)瀏覽器以二維圖片顯示繪制結(jié)果,制約了交互性能,瀏覽器需將交互請求發(fā)送至服務(wù)器并重新繪制,得到新的結(jié)果,交互性能易受網(wǎng)絡(luò)帶寬和服務(wù)器負(fù)載影響,造成延時過高,等待時間過長甚至無響應(yīng)等問題;

        3)在瀏覽器端利用WebGL進行體繪制時,需將數(shù)據(jù)載入GPU,時變體數(shù)據(jù)具有多個單步態(tài)數(shù)據(jù),全部載入GPU會導(dǎo)致內(nèi)存占用過高,WebGL程序會因此崩潰,無法有效的對時變體數(shù)據(jù)的所有步態(tài)進行實時的繪制和呈現(xiàn)。

        針對上述問題,本文做了以下工作:

        1)基于WebGL,實現(xiàn)了Web下的光線投射體繪制算法,瀏覽器利用本地GPU對數(shù)據(jù)進行體繪制并呈現(xiàn),并支持本地的實時交互;

        2)基于維度壓縮對原始體數(shù)據(jù)的預(yù)處理過程進行優(yōu)化,縮小了原始體數(shù)據(jù)的體量,并減少了繪制時間以及GPU內(nèi)存占用,使得本地GPU能夠載入時變體數(shù)據(jù)的更多步態(tài)。

        1.1 本文貢獻

        在Web端采用WebGL實現(xiàn)了光線投射體繪制算法,能夠利用本地GPU對體數(shù)據(jù)進行體繪制,并且支持實時交互;

        基于維度壓縮優(yōu)化了數(shù)據(jù)預(yù)處理過程,使得Web頁面能夠更快速、更流暢地繪制科學(xué)數(shù)據(jù),并且能夠同時載入時變體數(shù)據(jù)的更多步態(tài),便于觀察時變體數(shù)據(jù)的整體變化趨勢。

        2 時變體數(shù)據(jù)的Web體繪制

        光線投射算法是體繪制常用算法之一。通過投射一條光線穿過原始3D數(shù)據(jù)體,并在穿入點和傳出點之間進行等間隔均勻采樣,通過傳遞函數(shù)計算采樣點的顏色和不透明度,將采樣點向前合成,合成結(jié)果即是屏幕上一個可見像素點。該過程由圖1所示。通過投射多條光線,所得到的像素點最終在屏幕上呈現(xiàn)出繪制結(jié)果。

        圖1 光線投射算法示意圖

        在Web下實現(xiàn)光線投射算法,需要先對原始數(shù)據(jù)進行預(yù)處理操作。

        2.1 基于維度壓縮的體數(shù)據(jù)預(yù)處理

        科學(xué)體數(shù)據(jù)是3D形式,WebGL僅支持2D紋理,因此需對原始的體數(shù)據(jù)進行預(yù)處理。本文系統(tǒng)將原始的3D體數(shù)據(jù)轉(zhuǎn)換為2D紋理,轉(zhuǎn)換示意圖如圖2所示,該數(shù)據(jù)為人腳部位的CT掃描。本文方法將Z維度拆分,并將Z切片依次平鋪到二維圖上,最終形成圖2所示的二維圖集。

        生成2D圖集的過程主要包括:原始數(shù)據(jù)歸一化、轉(zhuǎn)換原始數(shù)據(jù)類型、生成2D圖集。為提升繪制效率及縮小內(nèi)存占用,本文在預(yù)處理過程中引入維度壓縮方法,以下將介紹基于維度壓縮的原始體數(shù)據(jù)的預(yù)處理過程。

        2.1.1 原始體數(shù)據(jù)的歸一化

        科學(xué)數(shù)據(jù)以采集的真實數(shù)值存儲,在生成2D紋理過程中,需要將體數(shù)據(jù)的值賦給RGBA顏色分量(取值范圍:0~255),因此,首先需將體數(shù)據(jù)的值歸一化到(0~255)區(qū)間。獲取原始體數(shù)據(jù)中體素值的最大值Max和最小值Min,則對于原始體數(shù)據(jù)中每一個體素值V,歸一化過程可由公式(1)~(2)表示:

        K=(255- 0)/(Max-Min)

        (1)

        V=0+K*(Array_A-Min)

        (2)

        2.1.2 轉(zhuǎn)換原始數(shù)據(jù)類型

        科學(xué)體數(shù)據(jù)通常使用float類型存儲,而Unsigned Char類型相比于float,所占空間可節(jié)省四分之三,這將減輕服務(wù)器的數(shù)據(jù)存儲負(fù)擔(dān),提升數(shù)據(jù)的載入速度,針對于大規(guī)模的時變體數(shù)據(jù),通過轉(zhuǎn)換數(shù)據(jù)類型,將降低存儲用量,該過程偽代碼如下所示:

        begin:

        #將原始數(shù)據(jù)讀入數(shù)組Array_source

        read source data into Array_source;

        #創(chuàng)建新數(shù)組Array_new

        create new char array Array_new;

        for eachiin Array_source

        {

        #將Array_source的值通過格式轉(zhuǎn)換,存入Array_new

        Array_new[i] =

        (unsigned char)Array_source;

        }

        End

        2.1.3 生成2D紋理

        將原始體數(shù)據(jù)的Z維度拆分為切片,將切片依次排列在一張圖像上,即可生成2D切片圖像集,2D切片圖像集上每一個像素點的RGBA分量值都由原始體數(shù)據(jù)對應(yīng)體素值(已歸一化到(0~255)區(qū)間)賦予。瀏覽器將此2D切片圖像集作為紋理載入GPU,便可進行光線投射體繪制。生成2D紋理的過程如圖3所示。該過程偽代碼如下所示,生成2D紋理后,即可進行體繪制和呈現(xiàn)。

        begin:

        #原始體數(shù)據(jù)的三個維度

        define width, height, depth;

        #讀取原始體數(shù)據(jù)至數(shù)組

        data = readSourceData(filename);

        #定義PNG圖像行列各分布多少張切片

        define slicePerAxis = int(sqrt(depth));

        #指定PNG圖像的寬度及高度

        define imageWidth = width * slicePerAxis;

        defineimageHeight = height * slicePerAxis;

        #創(chuàng)建一張指定大小的透明PNG圖片

        Image=Image.new(imageWidth, imageHeight);

        #將圖片存入像素映射表colormap

        #根據(jù)數(shù)組修改其像素值

        colormap = Image.load();

        for(intz= 0;z< depth;z++)

        for(inty= 0;y< height;y++)

        for(intx= 0;x< width;x++)

        {

        index =x+y* width +z* width * height;

        rgba = data[index];

        #獲取PNG圖像上的X坐標(biāo)

        realPosX=x+ (z% slicePerAxis) * width;

        #獲取PNG圖像上的Y坐標(biāo)

        realPosY=y+ ((int)(z/ slicePerAxis)) * height

        #將體素值寫入對應(yīng)點的RGBA分量

        colormap[realPosX, realPosY] =

        (rgba, rgba, rgba, rgba);

        }

        End

        圖3 生成2D紋理,紋理上每一個像素點的RGBA像素值為(V,V,V, V),其中V是原始體數(shù)據(jù)中對應(yīng)點的體素值

        2.1.4 時變體數(shù)據(jù)維度壓縮

        WebGL在繪制過程中將逐像素處理2D紋理,這是體繪制時間和內(nèi)存的主要開銷,而觀察時變體數(shù)據(jù)整體變化過程,瀏覽器需載入全部單步態(tài)數(shù)據(jù),要實現(xiàn)快速繪制和低內(nèi)存占用,需考慮如下因素:1) 縮短單步態(tài)數(shù)據(jù)的繪制時間;2) 減少單步態(tài)數(shù)據(jù)的內(nèi)存占用。因此,本文采用維度壓縮方法,壓縮原始體數(shù)據(jù)維度,減少2D紋理像素點數(shù)量。

        本文采用跳躍取樣方法進行維度壓縮,設(shè)置步長step,在(x,y,z)處取樣后,跳躍至(x+step,y+step,z+step)處繼續(xù)取樣,并將取樣點集合存儲為新的體數(shù)據(jù)。通過跳躍取樣,數(shù)據(jù)維度將縮小至原維度的1/step,體素數(shù)量將減少至原數(shù)據(jù)的(1/step)3,極大提升了GPU處理紋理的速度,以及降低GPU內(nèi)存的開銷,維度壓縮偽代碼如下所示:

        #原始體數(shù)據(jù)的三個維度

        define width, height, depth;

        #讀取原始體數(shù)據(jù)至數(shù)組

        source_data = readSourceData(filename);

        #創(chuàng)建新的體數(shù)據(jù)模板

        create new_data;

        #定義跳躍采樣值的跳躍系數(shù)step

        for(intz= 0;z< depth;z=z+ step)

        for(inty= 0;y< height;y=z+ step)

        for(intx= 0;x< width;x=z+ step)

        {

        index =x+y* width +z* height * depth;

        #將采樣值寫入新數(shù)組

        write data[index] into new_data;

        }

        該方法會損失原始體數(shù)據(jù)的部分精度,但將顯著提高繪制效率,經(jīng)過案例測試表明,在維度壓縮前后,繪制結(jié)果相差無幾,因此進行維度壓縮具有較好的可行性。

        通過以上方法對原始體數(shù)據(jù)進行預(yù)處理操作,最終將得到WebGL體繪制所需的2D紋理,以下本文將介紹如何基于WebGL,實現(xiàn)光線投射體繪制算法。

        2.2 基于WebGL的光線投射體繪制

        光線投射體繪制算法如圖2所示,其過程可表述為生成包圍盒、投射光線、取樣、光線終止,以及采樣點的合成。以下將分別介紹。

        2.2.1 生成包圍盒

        包圍盒是一個立方體,將3D體數(shù)據(jù)包圍其中,采用包圍盒取代體數(shù)據(jù),則無需考慮體數(shù)據(jù)復(fù)雜形式,簡化計算。設(shè)實際體數(shù)據(jù)維度為(width,height,depth),則據(jù)此創(chuàng)建一個維度同樣為(width,height,depth)的長方體作為包圍盒。

        2.2.2 包圍盒空間坐標(biāo)與2D紋理的映射

        實際體繪制中,WebGL載入的是2D紋理,因此需要將包圍盒空間坐標(biāo)與2D紋理上的像素點坐標(biāo)建立映射關(guān)系,以便投射光線即采樣。根據(jù)表2生成2D紋理的偽代碼,包圍盒內(nèi)部任意一點坐標(biāo)(x0,y0,z0)與2D紋理像素點實際坐標(biāo)(X,Y)的對應(yīng)關(guān)系為:

        X=x0+(z0%slicePerAxis)×width

        (3)

        Y=y0+((int)(z0/slicePerAxis))×height

        (4)

        其中,slicePerAxis表示2D紋理上每一行所具有的切片數(shù)量。

        2.2.3 投射光線并采樣

        設(shè)置視點,模擬觀察者的眼睛,從視點出發(fā)投射一條光線,穿過包圍盒,計算與包圍盒穿入與穿出交點坐標(biāo),分別作為光線的起點和終點。自定義間隔值,并在光線上進行等間距的采樣,該過程由圖4所示。

        圖4 采樣示意圖

        (5)

        (6)

        其中:N表示該條光線上采樣點的總個數(shù),(xn,yn,zn)則表示第n個采樣點。得到采樣點坐標(biāo)后,即可根據(jù)公式(3)~(4)采集2D紋理上實際對應(yīng)的像素點。

        2.2.4 光線停止及采樣點合成

        通過傳遞函數(shù),將采樣點真實數(shù)值轉(zhuǎn)換為顏色和不透明度,并由遠及近(距離視點),開始合成同一光線上的采樣點,并最終得到屏幕上的像素點。該過程如圖5所示。這是一個迭代過程,當(dāng)光線到達終點時,迭代過程便會停止,為縮減體繪制的時間,當(dāng)其滿足采樣點合成過程中,累積不透明度到達1時,迭代過程可提前停止。由于當(dāng)累積不透明度到達1時,后續(xù)的采樣點將不會影響合成結(jié)果,因此迭代過程便可提前停止。由此,光線投射算法停止的條件為:

        1)迭代過程到達光線終點;

        2)迭代過程中,累積不透明度到達1。

        圖5 采樣點的合成

        當(dāng)所有光線上的采樣點向前合成為屏幕上的一個可見像素時,即可在屏幕上觀察到最終的繪制結(jié)果,圖3所示人腳部位的2D紋理圖集在瀏覽器上體繪制的效果如圖6所示。

        圖6 體繪制結(jié)果

        2.2.5 實時交互

        本文通過調(diào)用JavaScript監(jiān)測鼠標(biāo)及滾輪的變化,更改視點的位置,并重新進行體繪制過程,得到新的繪制結(jié)果。由于是在本地利用GPU的高性能進行繪制,交互的延時不受網(wǎng)絡(luò)帶寬和服務(wù)器負(fù)載的影響,交互響應(yīng)時間快,實時交互性能優(yōu)于傳統(tǒng)的體繪制系統(tǒng)。

        3 Web體繪制系統(tǒng)的實現(xiàn)與測試

        本文采用B/S架構(gòu),搭建了Web體繪制系統(tǒng),并引入Isabel颶風(fēng)數(shù)據(jù)集以驗證本文方法的有效性,服務(wù)器端對原始數(shù)據(jù)進行預(yù)處理,生成2D紋理,瀏覽器端請求2D紋理,并載入GPU,基于光線投射算法進行體繪制和呈現(xiàn)。系統(tǒng)整體架構(gòu)如圖7所示。系統(tǒng)設(shè)計了單文件查看模塊和時變體數(shù)據(jù)觀察模塊。

        1)單文件查看模塊:單文件查看模塊用于繪制和呈現(xiàn)時變體數(shù)據(jù)的單個步態(tài)等,該模塊中,原始體數(shù)據(jù)未進行維度壓縮,以觀察體數(shù)據(jù)的全部細(xì)節(jié),并支持觀察者使用鼠標(biāo)及滾輪對視圖進行平移、旋轉(zhuǎn)、縮放等交互操作。同時,系統(tǒng)還設(shè)計了傳遞函數(shù)面板,觀察者可以使用不同的顏色編碼和不透明度等控制選項,對體數(shù)據(jù)的繪制結(jié)果進行調(diào)節(jié)。

        2)時變體數(shù)據(jù)觀察模塊:該模塊需要將全部單步態(tài)數(shù)據(jù)載入GPU,因此,該模塊加載的原始體數(shù)據(jù)將進行維度壓縮,以縮短單個步態(tài)數(shù)據(jù)的繪制時間和內(nèi)存占用。通過設(shè)

        置間隔時間,WebGL將依次動態(tài)的繪制并呈現(xiàn)每一個單步態(tài)數(shù)據(jù),觀察者由此能夠觀測到時變數(shù)據(jù)動態(tài)的變化過程,以分析時變體數(shù)據(jù)的整體變化趨勢。

        3.1 Isabel颶風(fēng)數(shù)據(jù)集

        Isabel颶風(fēng)數(shù)據(jù)集是由美國國家大氣研究中心所采集到的颶風(fēng)信息,數(shù)據(jù)集的真實維度為2 139 km*2 004 km*19.8 km,采集到的數(shù)據(jù)以float類型存入500*500*100的維度空間中,該數(shù)據(jù)集一共采集了13個變量,包括云水混合比、溫度、壓力等,每個變量共采集48個時間步長(每隔一小時采集一次,一共采集48個小時),單步態(tài)數(shù)據(jù)大小為95 MB。

        系統(tǒng)采用第一個變量(QCLOUD,云水混合比)作為案例測試,用以驗證系統(tǒng)的有效性和可行性。

        3.2 數(shù)據(jù)預(yù)處理

        將QCLOUD的48個單步態(tài)體數(shù)據(jù)進行歸一化操作和存儲方式轉(zhuǎn)換后,生成未經(jīng)過維度壓縮的2D紋理。然后對數(shù)據(jù)進行跳躍采樣,本系統(tǒng)中設(shè)置跳躍步長step為2,維度壓縮后體數(shù)據(jù)體素數(shù)量從2 500萬減少到了3.125萬,再生成2D紋理。經(jīng)過維度壓縮和未經(jīng)維度壓縮生成的2D紋理對比如圖8所示,圖8(a)未經(jīng)維度壓縮,圖8(b)經(jīng)過維度壓縮。

        3.3 時變體數(shù)據(jù)的Web體繪制

        瀏覽器端利用WebGL將數(shù)據(jù)載入GPU進行光線投射體繪制,本系統(tǒng)進行案例測試的硬件環(huán)境信息如表1所示。

        圖7 基于B/S架構(gòu)的時變體數(shù)據(jù)體繪制系統(tǒng)框架圖

        圖8 第一單步態(tài)體數(shù)據(jù)生成的二維圖集

        表1 案例測試硬件環(huán)境信息

        3.3.1 原始體數(shù)據(jù)維度壓縮前后繪制對比

        經(jīng)過維度壓縮之后,原始體數(shù)據(jù)會損失部分精度,但是將極大地提高體繪制的速度,如圖9所示,圖(a)為當(dāng)跳躍步長step設(shè)置為2時進行維度壓縮所得到的繪制結(jié)果,圖(b)為不進行維度壓縮時得到的繪制結(jié)果,兩種方式的繪制時間和內(nèi)存占用如表2所示。

        圖9 兩種處理方式的繪制結(jié)果對比

        表2 維度壓縮前后繪制時間對比

        體數(shù)據(jù)數(shù)據(jù)維度繪制時間/msGPU占用/MB經(jīng)過壓縮250*250*504355未經(jīng)壓縮500*500*100351226

        該案例可證明,進行維度壓縮將顯著提升繪制速度,同時對于繪制結(jié)果影響較小。

        3.3.2 單文件查看模塊

        系統(tǒng)設(shè)計了單文件查看模塊用以驗證單個體數(shù)據(jù)的實時繪制和交互的性能,如圖10所示,可在列表中選擇需要查看的體數(shù)據(jù)。

        圖10 單文件查看模式的繪制效果

        通過鼠標(biāo),對數(shù)據(jù)進行旋轉(zhuǎn)、縮放、平移等交互操作,以及修改傳遞函數(shù)參數(shù)等操作,視圖能夠?qū)崟r地進行重繪,并顯示新的渲染結(jié)果,修改傳遞函數(shù)的示例如圖11所示。

        圖11 改傳遞函數(shù)的繪制效果

        測試結(jié)果表明無論是交互,還是修改傳遞函數(shù)值,數(shù)據(jù)均能夠?qū)崟r地進行重新渲染,得到新的結(jié)果,且?guī)俾誓軌蚓S持在58~60 FPS。

        3.3.3 時變體數(shù)據(jù)觀察模塊測試

        該測試采用QCLOUD變量的48個步態(tài)數(shù)據(jù),每個體數(shù)據(jù)都經(jīng)過歸一化,存儲格式轉(zhuǎn)換,以及采用步長為2的跳躍采樣進行維度壓縮,試驗測試將48個步態(tài)的數(shù)據(jù)全部載入GPU進行預(yù)渲染,并設(shè)置顯示間隔時間為150 ms,測試結(jié)果表明,在瀏覽器端能夠進行流暢的動畫展示。測試相關(guān)結(jié)果如表3所示。

        表3 時變體數(shù)據(jù)觀察模塊測試參數(shù)

        4 結(jié)束語

        本文提出了一種基于B/S架構(gòu)的時變體數(shù)據(jù)的體繪制系統(tǒng),該系統(tǒng)通過WebGL標(biāo)準(zhǔn)實現(xiàn)了光線投射體繪制算法,并支持實時交互。同時,基于維度壓縮優(yōu)化了體數(shù)據(jù)的預(yù)處理過程,減少了單步態(tài)數(shù)據(jù)的繪制時間和內(nèi)存占用,使得瀏覽器端能夠?qū)r變體數(shù)據(jù)全部載入,并逐步繪制顯示,以動畫的形式呈現(xiàn)時變體數(shù)據(jù)的變化效果。最后系統(tǒng)引入Isabel時變颶風(fēng)數(shù)據(jù)集進行了案例測試,測試表明,該系統(tǒng)能夠支持體數(shù)據(jù)的實時繪制和交互,并能夠流暢地進行動畫演示,幀速率可達到50 FPS以上。

        然而本系統(tǒng)依然存在著不足之處,主要包括:

        1)當(dāng)系統(tǒng)并發(fā)訪問數(shù)量增加,系統(tǒng)的并發(fā)性難以維持,會出現(xiàn)系統(tǒng)卡頓,假死等問題;

        2)維度壓縮會損失數(shù)據(jù)的精度,并且針對不同規(guī)模的時變體數(shù)據(jù),跳躍采樣的步長值無法自適應(yīng)取值,缺乏靈活性。

        因此在未來的工作中,將主要圍繞一下內(nèi)容進行研究:

        1)系統(tǒng)的并發(fā)性,針對大規(guī)模地訪問數(shù)量,系統(tǒng)能夠有效地保持穩(wěn)定性;

        2)更加有效的體繪制方法,在體繪制方法上進行研究,改進繪制方法,提升繪制質(zhì)量;

        3)針對時變體數(shù)據(jù),研究自適應(yīng)跳躍步長,根據(jù)不同的體數(shù)據(jù),自適應(yīng)進行維度壓縮。

        猜你喜歡
        變體步態(tài)瀏覽器
        小螞蟻與“三角步態(tài)”
        基于DDPG算法的變體飛行器自主變形決策
        反瀏覽器指紋追蹤
        電子制作(2019年10期)2019-06-17 11:45:14
        基于面部和步態(tài)識別的兒童走失尋回系統(tǒng)
        電子制作(2018年18期)2018-11-14 01:48:04
        基于Kinect的學(xué)步期幼兒自然步態(tài)提取
        非仿射參數(shù)依賴LPV模型的變體飛行器H∞控制
        環(huán)球瀏覽器
        再見,那些年我們嘲笑過的IE瀏覽器
        耀變體噴流高能電子譜的形成機制
        便宜假肢能模仿正常步態(tài)
        青青草成人免费在线观看视频| 亚洲永久无码动态图| 久久水蜜桃亚洲av无码精品麻豆| 色综久久综合桃花网国产精品| 一本色道久久亚洲加勒比| 成年女人免费视频播放体验区| 国产呦精品系列在线播放| 日产精品一区二区三区免费| 国产精品成人av一区二区三区| 国产精品久久久久久一区二区三区 | 四虎永久免费影院在线| 成人综合亚洲国产成人| 国产手机在线观看一区二区三区| 国产精品无码久久久久久| 国产91网址| 国产白浆流出一区二区| 在线观看午夜视频一区二区| 18分钟处破好疼哭视频在线观看 | 性色av免费网站| 国产啪精品视频网站丝袜| 亚洲国产欲色有一二欲色| 免费人成视频网站在在线| 中文字幕精品久久久久人妻红杏ⅰ | 国精品无码一区二区三区在线| 亚洲日产无码中文字幕| 中文字幕人妻一区二区二区| 亚洲av午夜福利精品一区| 国产精品熟妇视频国产偷人| 久久精品国产亚洲精品色婷婷| 午夜一区二区三区观看| 国产成人无码a区在线观看视频| 亚洲一区二区欧美色妞影院 | 亚洲日本人妻少妇中文字幕| 国产成人a人亚洲精品无码| 国模精品二区| 97人妻中文字幕总站| 97人妻人人做人碰人人爽| 波多野结衣亚洲一区二区三区| 亚洲黄片av在线免费观看 | 少妇av射精精品蜜桃专区| 亚洲第一无码精品久久|