喬保娟 李志山 劉春明 侯曉武 楊志勇
(1.中國(guó)建筑科學(xué)研究院,北京 100013;2.廣州大學(xué)廣東省地震工程與應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣州 510415)
OpenGL圖形渲染技術(shù)在PKPM-SAUSAGE非線性分析軟件中的應(yīng)用
喬保娟1李志山2劉春明1侯曉武1楊志勇1
(1.中國(guó)建筑科學(xué)研究院,北京 100013;2.廣州大學(xué)廣東省地震工程與應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣州 510415)
通過(guò)對(duì)目前比較常用的GDI繪圖和OpenGL繪圖進(jìn)行比較分析,顯示了用OpenGL開(kāi)發(fā)的三維有限元圖形系統(tǒng)具有的速度快、繪圖功能強(qiáng)、捕捉方便、視覺(jué)效果好等優(yōu)越性。介紹了PKPM-SAUSAGE軟件三維模型繪圖流程,凹多邊形網(wǎng)格化顯示技術(shù),背面剔除及alpha混合,實(shí)時(shí)旋轉(zhuǎn)、平移、縮放算法和高效的捕捉算法,以及后處理結(jié)果平滑顯示技術(shù)和著色器編程顏色修正技術(shù)。最后通過(guò)工程實(shí)例驗(yàn)證了PKPM-SAUSAGE軟件OpenGL圖形顯示、旋轉(zhuǎn)、平移、縮放及捕捉的高效性。
OpenGL;建筑結(jié)構(gòu);三維模型實(shí)時(shí)顯示;著色器編程;PKPM-SAUSAGE軟件
【DOI】 10.16670/j.cnki.cn11-5823/tu.2015.05.03
與普通機(jī)械CAD軟件相比,建筑結(jié)構(gòu)有限元分析軟件具有兩個(gè)特點(diǎn):1)幾何對(duì)象體量大,通常包含數(shù)以百萬(wàn)的幾何實(shí)體(構(gòu)件、單元等);2)對(duì)圖形渲染效率要求高,用戶期望建筑結(jié)構(gòu)的三維模型能夠?qū)崟r(shí)顯示,旋轉(zhuǎn)、平移、縮放和捕捉等交互操作流暢。這就對(duì)圖形渲染技術(shù)提出了很高的要求。
目前有不少建筑結(jié)構(gòu)有限元分析軟件是利用Windows提供的一套圖形設(shè)備接口GDI進(jìn)行圖形繪制。GDI是Windows下的通用的繪圖設(shè)備,它面向二維圖形的繪制,提供的繪圖函數(shù)有限,而且對(duì)計(jì)算機(jī)資源的占用也很多。因此,對(duì)于大型復(fù)雜的建筑結(jié)構(gòu)模型,其繪圖效率低的特點(diǎn)明顯暴露。并且,通過(guò)二維圖形工具來(lái)表達(dá)三維實(shí)體的形狀,生成的三維圖形立體感和真實(shí)感不但不強(qiáng),而且要通過(guò)大量的矩陣變換以及浮點(diǎn)計(jì)算等操作,尤其在對(duì)三維實(shí)體進(jìn)行旋轉(zhuǎn)、縮放、平移和拾取等操作時(shí),其局限性更是難以克服。
OpenGL[1]是行業(yè)領(lǐng)域中最為廣泛接納的 2D/3D圖形API,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫(kù),它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),具有良好的可移植性,在專業(yè)圖形處理、科學(xué)計(jì)算等高端應(yīng)用領(lǐng)域應(yīng)用廣泛。與傳統(tǒng)的GDI繪圖相比,OpenGL具有以下優(yōu)勢(shì)[2]:
(1)能充分利用顯卡的硬件加速功能。OpenGL的硬件加速由顯卡廠商在硬件中實(shí)現(xiàn)的,在安裝了顯卡廠商提供的顯卡驅(qū)動(dòng)程序后,OpenGL程序就會(huì)有“加速”的效果。目前幾乎所有的顯卡都可以支持OpenGL硬件加速,在一臺(tái)使用高檔顯卡的微機(jī)上,可以達(dá)到工作站的水平。
(2) 具有強(qiáng)大的模型繪制功能。使用OpenGL可以很方便地繪制點(diǎn)、線、多邊形、曲線以及三維實(shí)體等元素。在利用OpenGL函數(shù)庫(kù)繪圖時(shí),不用考慮圖形顯示的基本細(xì)節(jié),可以加快開(kāi)發(fā)速度。
(3) 具有方便的選擇反饋功能。在二維繪圖程序中計(jì)算線段是否和鼠標(biāo)的拾取框相交很容易,但是在三維繪圖程序中,由于模型經(jīng)過(guò)了在空間中的多次旋轉(zhuǎn)、平移、縮放和投影變換,由用戶直接設(shè)計(jì)算法來(lái)拾取對(duì)象將比較困難。為此,OpenGL提供了選擇機(jī)制,為用戶拾取對(duì)象提供了方便。
(4) 具有通過(guò)光照處理能表達(dá)出物體三維特性的功能,具有很強(qiáng)的立體感。
(5) 提供著色器編程模型。允許開(kāi)發(fā)人員編寫渲染算法在顯卡的GPU(Graphic Processor Unit圖形處理單元)上執(zhí)行,代替固定的渲染管線的一部分,達(dá)到一些特殊的渲染目的,使圖像更逼真。同時(shí),著色器編程模型采用GPU并行也釋放了CPU空間,提高了圖形渲染效率。
可見(jiàn),OpenGL比GDI更適合有限元三維圖形系統(tǒng)的開(kāi)發(fā),是當(dāng)前開(kāi)發(fā)有限元分析軟件前、后處理圖形系統(tǒng)的理想選擇。本文將以PKPM-SAUSAGE軟件(簡(jiǎn)稱SAUSAGE)為例,探討OpenGL圖形渲染技術(shù)在大規(guī)模復(fù)雜建筑結(jié)構(gòu)有限元分析前后處理中的應(yīng)用。
2.1 SAUSAGE軟件架構(gòu)
SAUSAGE軟件基于MFC創(chuàng)建,程序模塊化設(shè)計(jì),采用面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu),具有良好的可移植性和擴(kuò)展性。SAUSAGE軟件代碼分層隔離,包括數(shù)據(jù)交換層、數(shù)據(jù)及邏輯層、繪圖層、界面控制層等四個(gè)層次。
(1)數(shù)據(jù)交換層:輸入輸出文件、接口等;
(2)繪圖層:繪圖封裝庫(kù);
(3)數(shù)據(jù)及邏輯層:與業(yè)務(wù)有關(guān)的功能和數(shù)據(jù)定義,由細(xì)到粗分級(jí)封裝,使數(shù)據(jù)結(jié)構(gòu)和程序邏輯清晰,易于跟蹤;
(4)界面控制層:用戶交互操作,消息處理,對(duì)話框形式的數(shù)據(jù)輸入,報(bào)表顯示等;
其中,本文討論的基于OpenGL的圖形渲染技術(shù)即封裝在繪圖層中。
2.2 三維模型繪圖流程
在設(shè)置好像素格式、光源參數(shù)(光源性質(zhì)、光源位置)、顏色模式(索引、RGBA)等OpenGL參數(shù)之后,SAUSAGE軟件根據(jù)建筑結(jié)構(gòu)梁、柱、板、墻、阻尼器、隔振支座等各類構(gòu)件的幾何位置及截面尺寸,計(jì)算出繪制三維模型構(gòu)件圖元頂點(diǎn)在世界坐標(biāo)系中的坐標(biāo)。世界坐標(biāo)系中的坐標(biāo)經(jīng)過(guò)視圖/模型變換、投影變換和視口變換后轉(zhuǎn)為屏幕坐標(biāo),這樣建筑結(jié)構(gòu)的三維模型圖便顯示在計(jì)算機(jī)屏幕上了。建筑結(jié)構(gòu)三維模型繪圖流程如圖1 所示。
圖1 建筑結(jié)構(gòu)三維模型繪圖流程
(1)視圖/模型變換
視圖/模型變換的作用是將世界坐標(biāo)系表示的模型變換到觀察坐標(biāo)系中。計(jì)算機(jī)圖像技術(shù)中,基于固定物體位置移動(dòng)相機(jī)(視圖變換),或者基于固定相機(jī)位置移動(dòng)被測(cè)物體(模型變換),得到效果是一樣的,它們實(shí)際是等效的。因此,SAUSAGE軟件中采用一個(gè)轉(zhuǎn)換矩陣進(jìn)行視圖變換和模型變換。
(2)投影變換
投影變換的目的是將觀察坐標(biāo)系表示的模型變換到OpenGL坐標(biāo)系中。投影變換有兩種:1)透視投影:這種投影的效果與人眼觀察世界的效果相同,距離視點(diǎn)越遠(yuǎn)的物體看起來(lái)越小,距離視點(diǎn)越近的物體看起來(lái)越大;2)正交投影:特點(diǎn)是無(wú)論物體距離視點(diǎn)多遠(yuǎn),投影后的尺寸不變,常用于建筑藍(lán)圖和計(jì)算機(jī)輔助設(shè)計(jì)的應(yīng)用程序;在這類應(yīng)用程序中,當(dāng)物體經(jīng)過(guò)投影之后,保持它們的實(shí)際大小以及它們之間的角度是至關(guān)重要的;SAUSAGE軟件采用正交投影。
(3)視口變換
視口是指計(jì)算機(jī)屏幕中的矩形繪圖區(qū)域,它用窗口坐標(biāo)來(lái)度量,反映了屏幕上的像素位置。視口變換就是將視景體內(nèi)投影的物體顯示在二維的視口平面上,這個(gè)過(guò)程類似于將照片放大或縮小。視口變換中視口的寬高比通常等于視景體的寬高比,否則視口內(nèi)顯示的圖形將會(huì)發(fā)生形變。
在SAUSAGE前處理中,各種構(gòu)件、單元的顏色由軟件/用戶指定。后處理中,軟件將彈塑性時(shí)程分析結(jié)果的數(shù)值映射到顏色空間中,通過(guò)節(jié)點(diǎn)/單元的顏色來(lái)反應(yīng)結(jié)構(gòu)不同部位的位移、應(yīng)力、應(yīng)變、損傷以及內(nèi)力等彈塑性時(shí)程分析結(jié)果的數(shù)值分布。
2.3 凹多邊形板的繪制
OpenGL中認(rèn)為合法的多邊形必須是凸多邊形,凹多邊形、自交多邊形、帶孔的多邊形等非凸多邊形在OpenGL中繪制會(huì)出現(xiàn)出乎意料的結(jié)果。簡(jiǎn)單多邊形可被快速地渲染,而復(fù)雜多邊形難以快速檢測(cè)出來(lái)。為了最大限度的提高性能,OpenGL假定多邊形是簡(jiǎn)單的。而對(duì)于真實(shí)的建筑結(jié)構(gòu),由于板、墻開(kāi)洞等經(jīng)常會(huì)有凹多邊形或帶孔多邊形出現(xiàn),如果人為將這類多邊形拆分成凸多邊形,將會(huì)把一個(gè)完整的構(gòu)件拆分成多個(gè)構(gòu)件,這不是結(jié)構(gòu)設(shè)計(jì)師所期望的。
為了正確顯示凹多邊形板、墻,SAUSAGE軟件采用GLU庫(kù)中多邊形網(wǎng)格化對(duì)象GLUtesselator,對(duì)凹多邊形進(jìn)行網(wǎng)格化,將它們分解成一組簡(jiǎn)單的、能夠進(jìn)行渲染的OpenGL多邊形。網(wǎng)格化實(shí)際上是在把頂點(diǎn)傳入OpenGL管線之前,先將其傳到網(wǎng)格化對(duì)象,網(wǎng)格化對(duì)象處理完后,再把處理后的頂點(diǎn)傳入到OpenGL渲染管線。對(duì)凹多邊形網(wǎng)格化顯示,僅是圖形顯示上的處理,不會(huì)拆分構(gòu)件,對(duì)建筑結(jié)構(gòu)的三維模型沒(méi)有任何影響。對(duì)凹多邊形進(jìn)行網(wǎng)格化顯示前后的效果對(duì)比如圖2所示,圖中選中樓板(粉色)平面形狀為凹多邊形。
圖2 網(wǎng)格化顯示凹多邊形效果
2.4 背面剔除與alpha混合
在SAUSAGE軟件前處理中,繪制建筑結(jié)構(gòu)三維模型圖時(shí),為了加快繪圖速度,采用了OpenGL深度測(cè)試剔除背面功能。屏幕的深度緩存默認(rèn)值為1(最遠(yuǎn)),顏色緩存則被初始化為背景顏色。所有的碎片處理完之后,它們的Z值與緩存中的值比較。如果Z值比緩存中對(duì)應(yīng)的Z值小,那么碎片的Z值和顏色值就會(huì)被寫入緩存中。否則,認(rèn)為正準(zhǔn)備輸出顯示的碎片被其他物體(碎片)擋住了,直接忽略。這種算法不會(huì)受到碎片處理順序的影響。
在SAUSAGE軟件后處理中,在顯示位移、應(yīng)力、應(yīng)變、內(nèi)力和損傷等彈塑性時(shí)程分析結(jié)果云圖時(shí),為了方便用戶觀察整體結(jié)構(gòu)的計(jì)算結(jié)果分布,對(duì)三維模型云圖進(jìn)行了alpha混合處理。RGBA顏色模式中包含一個(gè)alpha值,即透明度。alpha值的范圍為[0,1],0代表完全透明,1代表不透明。經(jīng)過(guò)alpha混合處理后,透過(guò)建筑結(jié)構(gòu)構(gòu)件可以看到它后面的構(gòu)件的彈塑性時(shí)程分析結(jié)果云圖。alpha混合與背面剔除是互斥的,不能同時(shí)存在?;旌瞎饺缦拢?/p>
(1)
其中,c 為最終顯示顏色,cs是原顏色,αs是原透明度(alpha),cd是目的位置顏色(背景顏色),三個(gè)顏色通道(RGB)獨(dú)自進(jìn)行混合?;旌瞎街?,碎片順排序很重要,它們必須是從“后面”到“前面”的順序,最大深度的最先處理。
3.1 平移、旋轉(zhuǎn)和縮放
實(shí)時(shí)平移、旋轉(zhuǎn)和縮放是查看三維有限元模型時(shí)必不可少的操作。在GDI繪圖中,實(shí)現(xiàn)這3個(gè)操作比較困難,而且容易造成屏幕閃爍。在OpenGL繪圖時(shí),只需對(duì)視點(diǎn)位置和參考點(diǎn)位置進(jìn)行簡(jiǎn)單的變換操作就可以實(shí)現(xiàn)。
在SAUSAGE軟件中,平移需要同時(shí)改變視點(diǎn)和參考點(diǎn)的位置。旋轉(zhuǎn)和平移類似,只是保持參考點(diǎn)不變,并保持視點(diǎn)和參考點(diǎn)的距離不變。如果旋轉(zhuǎn)中心不是模型的幾何中心,旋轉(zhuǎn)后應(yīng)該重新計(jì)算裁剪平面,以避免模型被裁剪??s放只需要改變視景體的大小即可實(shí)現(xiàn)。窗口縮放算法是用鼠標(biāo)在屏幕上拖出矩形框,將此框內(nèi)的圖形放大到整個(gè)屏幕,具體做法是,首先將矩形框的中心點(diǎn)對(duì)應(yīng)的物體點(diǎn)移動(dòng)到屏幕中心點(diǎn),再計(jì)算圖形放大倍數(shù),以寬度方向放大倍數(shù)為準(zhǔn)。
將視點(diǎn)、參考點(diǎn)的移動(dòng)距離和縮放比例等與鼠標(biāo)操作關(guān)聯(lián)起來(lái),就可以實(shí)現(xiàn)鼠標(biāo)操作的實(shí)時(shí)平移、旋轉(zhuǎn)和縮放。
3.2 三維模型捕捉技術(shù)
在有限元建模軟件中,很多時(shí)候都需要用戶和圖形對(duì)象之間進(jìn)行交互操作,如用鼠標(biāo)選擇模型中的一個(gè)節(jié)點(diǎn)查看或修改該點(diǎn)的荷載和約束信息,或者選擇一個(gè)梁柱構(gòu)件查看或修改截面、材料等信息。OpenGL提供了選擇機(jī)制,為用戶拾取對(duì)象提供了方便。
在選擇模式下,SAUSAGE軟件根據(jù)鼠標(biāo)的位置在OpenGL中定義一個(gè)狹長(zhǎng)的視景體,像一條垂直于屏幕的細(xì)長(zhǎng)射線,在繪制一個(gè)對(duì)象之前對(duì)其進(jìn)行命名,OpenGL將落在這個(gè)視景體內(nèi)的對(duì)象名稱存儲(chǔ)在一個(gè)堆棧里,即選擇緩沖區(qū)。選擇緩沖區(qū)包括多條拾取記錄,每條拾取記錄由4部分組成:對(duì)象名稱的個(gè)數(shù),對(duì)象的最小z坐標(biāo) (z-min),對(duì)象的最大z坐標(biāo) (z-max)和對(duì)象名稱。遍歷緩沖區(qū)中的所有記錄,綜合考慮z-min、z-max及圖元結(jié)構(gòu)類型(可由圖元名稱得到)對(duì)圖元進(jìn)行排序。若捕捉單個(gè)圖元,則排序后的第一個(gè)圖元將被選中;若框選一組圖元,則選擇緩沖區(qū)中的所有圖元都被選中。
與GDI繪圖相比,OpenGL的最大優(yōu)勢(shì)是應(yīng)力、位移等都是空間的,更能真實(shí)地反映實(shí)際情況,尤其是在繪制彩色云圖上,OpenGL有極大的優(yōu)勢(shì)。
4.1 后處理結(jié)果平滑顯示技術(shù)
SAUSAGE軟件后處理主要是為了顯示節(jié)點(diǎn)的位移,以及單元的應(yīng)力、應(yīng)變、內(nèi)力、損傷等彈塑性分析結(jié)果,主要包括模態(tài)分析各階振型變形云圖,靜力分析節(jié)點(diǎn)位移云圖,動(dòng)力分析節(jié)點(diǎn)位移云圖、速度云圖、加速度云圖、單元應(yīng)力云圖、單元應(yīng)變?cè)茍D、單元損傷云圖、鋼筋塑性應(yīng)變?cè)茍D、鋼材塑性應(yīng)變?cè)茍D、單元內(nèi)力云圖等。
由于 OpenGL本身具有顏色均勻過(guò)渡的能力,使繪制彩色云圖十分方便。要生成彩色云圖,先建立各節(jié)點(diǎn)的應(yīng)力值或位移值與顏色值的對(duì)應(yīng)關(guān)系;然后,將最大值和最小值之間分成若干段,分別對(duì)應(yīng)不同的顏色,采用線性插值可求得其他量值對(duì)應(yīng)的顏色值。這種顏色對(duì)應(yīng)關(guān)系比較形象地反映了各種應(yīng)力或位移的分布。由于應(yīng)力、損傷等計(jì)算結(jié)果是單元中心的值,需要用體積加權(quán)的方法轉(zhuǎn)換成單元節(jié)點(diǎn)上的值,然后求出其顏色值。這樣,利用OpenGL多邊形自動(dòng)顏色過(guò)渡填充的功能就可以生成彩色云圖。
為了提高云圖顯示效果,使顏色顯示更平滑,SAUSAGE軟件還提供單元形心及單元邊線中點(diǎn)參與著色的方法。具體做法是,連接單元頂點(diǎn)、邊線中點(diǎn)及單元形心,將單元剖分成多個(gè)小四邊形(三角形單元剖分成三個(gè)小四邊形,四邊形單元剖分成四個(gè)小四邊形),單元頂點(diǎn)顏色為與之相鄰的幾個(gè)單元彈塑性分析結(jié)果平均值對(duì)應(yīng)的顏色,單元邊線中點(diǎn)顏色為與之相鄰的兩個(gè)單元彈塑性分析結(jié)果平均值對(duì)應(yīng)的顏色,單元形心顏色為本單元彈塑性分析結(jié)果對(duì)應(yīng)的顏色,繪制單元時(shí),將單元按剖分的多個(gè)小四邊形來(lái)繪制。這樣繪制的圖形顏色過(guò)渡更均勻,且避免了平均引起的單元彈塑性分析結(jié)果最大值被削弱。某結(jié)構(gòu)底部剪力墻損傷云圖單元邊線及形心是否參與著色效果對(duì)比如圖3。
4.2 著色器編程顏色修正技術(shù)
有限元分析計(jì)算結(jié)果的圖形顯示直觀明了,用戶通過(guò)觀察單元顏色即可快速了解計(jì)算結(jié)果的數(shù)值分布,判斷結(jié)構(gòu)薄弱部位,十分方便。但OpenGL多邊形自動(dòng)顏色過(guò)渡填充功能必然會(huì)帶來(lái)一個(gè)問(wèn)題,OpenGL的顏色平均為RGB值的平均,得到的顏色與計(jì)算結(jié)果平均后對(duì)應(yīng)的顏色有偏差。比如,圖4中A點(diǎn)顏色為(255,0,0),C點(diǎn)顏色為(0,255,0),E點(diǎn)顏色為(0,0,255),OpenGL自動(dòng)計(jì)算的B點(diǎn)顏色為(A+C)/2=(127,127,0),D點(diǎn)顏色為(C+E)/2=(0,127,127),F(xiàn)點(diǎn)顏色為(D+B)/2=(63,127,63),而F點(diǎn)顏色的正確值應(yīng)為(0,255,0),也即C點(diǎn)顏色,這就需要對(duì)顏色進(jìn)行修正,將F點(diǎn)拉倒C點(diǎn)。
圖3 單元形心及邊線中點(diǎn)是否參與著色效果對(duì)比
圖4 顏色修正示意圖
該部分采用了著色器編程技術(shù),在輸出圖形時(shí),由顯卡GPU修正每個(gè)像素的顏色,具體實(shí)現(xiàn)代碼如圖5,由于采用了GPU并行,圖形顯示效率很高。
某大底盤多塔結(jié)構(gòu),47層,高168.7m,四個(gè)塔樓均為框架核心筒結(jié)構(gòu),平面尺寸分別為58.7m×41.9m,52.1m×41.2m,58m×26.4m和58m×26.4m。三維模型實(shí)體圖如圖6,為了提高圖形顯示效率,采用了OpenGL背面剔除功能。彈塑性動(dòng)力時(shí)程分析損傷云圖如圖7,圖中左上角小圖為局部放大效果,為了方便用戶查看整體結(jié)構(gòu)的損傷分布,采用了alpha混合的透明效果。
該結(jié)構(gòu)三維模型在構(gòu)件實(shí)體顯式模式下,旋轉(zhuǎn)、平移和縮放重繪速率為35.2fps(每秒傳輸幀數(shù))。
單元顯式模式下,旋轉(zhuǎn)、平移和縮放重繪速率11.7fps。后處理細(xì)分單元顯示損傷云圖時(shí),重繪速率為5.6fps。可見(jiàn),在SAUSAGE軟件中,大規(guī)模復(fù)雜結(jié)構(gòu)在三維模型旋轉(zhuǎn)、平移和縮放時(shí),圖形重繪速率高,用戶操作體驗(yàn)是很流暢的。
該結(jié)構(gòu)捕捉刷新速率為149.6fps,可見(jiàn),在SAUSAGE軟件中,捕捉效率是相當(dāng)高的,達(dá)到了實(shí)時(shí)捕捉的效果。
圖5 著色器編程顏色修正并行代碼
圖6 某建筑結(jié)構(gòu)三維模型實(shí)體圖
圖7 某建筑結(jié)構(gòu)彈塑性分析損傷云圖
本文簡(jiǎn)要介紹了SAUSAGE軟件的三維模型繪圖流程和凹多邊形網(wǎng)格化顯示技術(shù),軟件采用OpenGL背面剔除功能以提高三維模型的繪圖效率,采用alpha混合功能以提升彈塑性時(shí)程分析結(jié)果云圖顯示效果。同時(shí)介紹了SAUSAGE軟件交互操作的實(shí)現(xiàn)算法,包括實(shí)時(shí)旋轉(zhuǎn)、平移和縮放算法以及高效的捕捉算法。在后處理中,SAUSAGE軟件通過(guò)細(xì)分單元使單元形心及邊線中點(diǎn)參與著色的方法,使彈塑性時(shí)程分析結(jié)果云圖顯示更平滑、逼真,采用著色器編程技術(shù)修正OpenGL多邊形自動(dòng)顏色過(guò)渡填充功能帶來(lái)的顏色失真問(wèn)題。最后,通過(guò)工程實(shí)例驗(yàn)證了OpenGL圖形顯示、旋轉(zhuǎn)、平移、縮放及捕捉的高效性。
[1]OpenGL編程指南[M]. 北京:機(jī)械工業(yè)出版社,2009.
[2]陳俊濤,肖明,鄭永蘭. 用OpenGL開(kāi)發(fā)地下結(jié)構(gòu)工程三維有限元圖形系統(tǒng)[J].巖石力學(xué)與工程學(xué)報(bào). 2006,25(5).
Application of OpenGL Graphics Rendering Technology in the Nonlinear Analysis Software of PKPM-SAUSAGE
Qiao Baojuan1, Li Zhishan2, Liu Chunming1, Hou Xiaowu1, Yang Zhiyong1
(1ChinaAcademyofBuildingResearch,Beijing100013,China; 2EarthquakeEngineeringResearch&TestCenterofGuangzhouUniversity,Guangzhou510405,China)
In this paper,the superiorities of 3D finite element graphics system developed by OpenGL, such as high speed,powerful drawing function,convenient selection and feedback and nice visual effect are demonsrated through the comparison between GDI and OpenGL,which are both popular in graphics system at present. The paper also introduces drawing process of 3D model by OpenGL, display technology of concave polygon, back face culling and alpha blending, real-time rotation, translation, scaling, and efficient capture algorithm of PKPM-SAUSAGE software as well as the results display smoothing technology and color correction technology by shader programming in post-processing. Finally, the efficiency of OpenGL graphics display, rotation, translation, scaling and capture in PKPM-SAUSAGE software is verified by practical engineering examples.
OpenGL; Building Structure; 3D Model Real-time Display; Shader Programming; PKPM-SAUSAGE
國(guó)家科技支撐計(jì)劃課題(2014BAH25F02);教育部創(chuàng)新團(tuán)隊(duì)(IRT13057)
喬保娟(1987-),女,工程師。主要從事軟件研發(fā)工作。
TU311.41
A
1674-7461(2015)05-0013-06