專利名稱:基于OpenGL的透明/半透明顯示處理裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息處理技術(shù)領(lǐng)域,尤其涉及一種基于OpenGL的透明/半透明圖像顯示處理裝置及方法。
背景技術(shù):
近年來,電視技術(shù)IT (Information Technology,信息技術(shù))化的趨勢(shì)越來越明顯,OpenGL(Open Graphics Library)等3D圖形技術(shù)逐步引入到電視的用戶界面開發(fā)中, 3D圖形技術(shù)的引入,使得用戶有了更加完美的電視操作體驗(yàn)。為了更好的3D操作界面體驗(yàn),3D操作界面上的模型,物體等可能要求半透明或全透明,運(yùn)動(dòng)過程中漸變透明或逐漸消失掉。
實(shí)現(xiàn)透明半透明效果,在OpenGL中,利用其混合功能,可以使用多邊形點(diǎn)畫模式模擬半透明的材料。多邊形的點(diǎn)畫模式的大小是32X32位,因此可以在透明和不透明之間實(shí)現(xiàn)1023種不同的半透明效果。對(duì)于那些不支持混合硬件的系統(tǒng),這是一種非常有效的解決方案。但是,這種方法支持的大小固定,半透明效果也有限,并且程序運(yùn)行后只能用于一個(gè)面上,對(duì)3D模型而言就無可奈何了。
后來,人們通過逆向思維,改變紋理圖像來達(dá)到透明/半透明顯示的目的。一種解決方案就是制作符合要求的帶alpha半透明通道的半透明圖片材料。另一種解決方案是在產(chǎn)生紋理對(duì)象前,對(duì)取得的等同原始紋理圖像的紋理數(shù)據(jù)進(jìn)行處理。對(duì)于透明度不變的情況,做一張符合要求效果透明度的圖不難,內(nèi)存消耗也不大,CPU (Central Processing Unit,中央處理單元)的占用率也低。但對(duì)于透明度不斷變化的情況,只能采用一系列透明度不同的圖片或不斷地更改獲取的等同原始紋理圖像的紋理數(shù)據(jù)去重新產(chǎn)生紋理對(duì)象快速替換物體模型已綁定的紋理對(duì)象。顯然,這兩種解決方案要么占用資源及內(nèi)存過多,要么占用CPU過多。因此,設(shè)計(jì)一種紋理圖片占用資源量少,內(nèi)存使用少,CPU占用率低的算法成為必須解決的問題。發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種基于OpenGL的透明/半透明顯示處理方法,旨在節(jié)約CPU的內(nèi)存,降低CPU的占用率。
本發(fā)明提供了一種基于OpenGL的透明/半透明顯示處理方法,包括以下步驟
啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;
根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元;
圖形處理單元對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);
顯示設(shè)備根據(jù)所述幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。
優(yōu)選地,所述啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息的步驟具體包
加載物體模型頂點(diǎn)數(shù)據(jù);
加載紋理圖像數(shù)據(jù),生成紋理對(duì)象;
初始化光照信息;
加載著色器程序,生成著色器程序?qū)ο蟆?br>
優(yōu)選地,所述圖形處理單元對(duì)所述應(yīng)用程序初始化信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū)的步驟具體包括
根據(jù)應(yīng)用程序初始化信息及物體模型的位置狀態(tài)信息,進(jìn)行位置及光照變換處理,并對(duì)其進(jìn)行光柵化,形成像素點(diǎn)信息;
根據(jù)alpha透明因子,對(duì)光柵化處理后的像素點(diǎn)信息進(jìn)行顏色處理,生成圖像片段信息,將所述圖像片段與原有的片段進(jìn)行片段測(cè)試及混合,生成最終圖像信息,并將其輸出至幀緩存區(qū)。
優(yōu)選地,所述片段測(cè)試包括裁剪測(cè)試、alpha測(cè)試、模板測(cè)試、深度測(cè)試。
優(yōu)選地,所述根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的alpha透明因子的步驟具體為
若物體模型為靜態(tài),則alpha透明因子為預(yù)置alpha值;
若物體模型為動(dòng)態(tài),則alpha透明因子根據(jù)變換公式有規(guī)則地變化。
本發(fā)明還提供了一種基于OpenGL的透明/半透明顯示處理裝置,包括中央處理單元、圖形處理單元及顯示單元,其中
中央處理單元,用于啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;還用于根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元;
圖形處理單元,用于對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及 alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);
顯示設(shè)備,用于根據(jù)所述幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。
優(yōu)選地,所述中央處理單元在初始化OpenGL時(shí)具體用于
加載物體模型頂點(diǎn)數(shù)據(jù);
加載紋理圖像數(shù)據(jù),生成紋理對(duì)象;
初始化光照信息;
加載著色器程序,生成著色器程序?qū)ο蟆?br>
優(yōu)選地,所述圖形處理單元具體包括
頂點(diǎn)著色單元,用于根據(jù)應(yīng)用程序初始化信息及物體模型的位置狀態(tài)信息,進(jìn)行位置及光照變換處理;
光柵處理單元,用于對(duì)位置及光照變換后的數(shù)據(jù),進(jìn)行光柵化,形成像素點(diǎn)信息;
片段著色單元,用于根據(jù)alpha透明因子,對(duì)光柵化處理后的像素點(diǎn)信息進(jìn)行顏色處理,并生成圖像片段信息;
混合處理單元,用于將所述圖像片段信息與原有的片段信息進(jìn)行片段測(cè)試及混合,生成最終圖像信息,并將其輸出至幀緩存區(qū)。
優(yōu)選地,所述片段測(cè)試包括裁剪測(cè)試、alpha測(cè)試、模板測(cè)試、深度測(cè)試。
優(yōu)選地,所述中央處理單元在計(jì)算alpha透明因子時(shí),具體用于
若物體模型為靜態(tài),則alpha透明因子為預(yù)置alpha值;
若物體模型為動(dòng)態(tài),則alpha透明因子根據(jù)變換公式有規(guī)則地變化。
本發(fā)明通過啟動(dòng)OpenGL應(yīng)用程序后,計(jì)算alpha透明因子,再將初始化信息與 alpha透明因子發(fā)送至圖形處理單元GPU處理,從而使GPU根據(jù)該alpha透明因子控制物體模型透明度的作用。因此,不需要多張紋理圖片資源,只需一張圖或不要圖,但物體模型要有顏色,也不需要不斷地更改獲取的等同原始紋理圖像的紋理數(shù)據(jù)去重新產(chǎn)生紋理對(duì)象快速替換物體模型已綁定的紋理對(duì)象,從而節(jié)約了存儲(chǔ)空間,大大節(jié)約了內(nèi)存占用量,降低了 CPU占用率。
圖1是本發(fā)明基于OpenGL的透明/半透明顯示處理方法一實(shí)施例的流程示意圖2是本發(fā)明中圖形處理單元對(duì)應(yīng)用程序初始化信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至緩存區(qū)的流程示意圖3是本發(fā)明基于OpenGL的透明/半透明顯示處理裝置一實(shí)施例的結(jié)構(gòu)示意圖4是本發(fā)明基于OpenGL的透明/半透明顯示處理裝置中圖形處理單元的結(jié)構(gòu)示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
以下結(jié)合說明書附圖及具體實(shí)施例進(jìn)一步說明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是本發(fā)明基于OpenGL的透明/半透明顯示處理方法一實(shí)施例的流程示意圖。
參照?qǐng)D1,本發(fā)明基于OpenGL的透明/半透明顯示處理方法包括以下步驟
步驟S110、啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;
中央處理單元CPU將啟動(dòng)OpenGL應(yīng)用程序,對(duì)其進(jìn)行初始化,并加載設(shè)置應(yīng)用程序初始化信息。例如,初始化OpenGL運(yùn)行環(huán)境,建立顯示區(qū)域,設(shè)置觀察點(diǎn),加載物體模型的信息等等。
步驟SllO具體包括
(1)加載物體模型頂點(diǎn)數(shù)據(jù);
由于物體模型均可以通過頂點(diǎn)數(shù)據(jù)進(jìn)行描述,例如三角形由三個(gè)頂點(diǎn)就可構(gòu)成。 該頂點(diǎn)數(shù)據(jù)為三維的空間數(shù)據(jù),例如(χ、y、ζ)中,χ表示X坐標(biāo)上的位置,y表示Y坐標(biāo)上的位置,ζ表示Z坐標(biāo)上的位置。通過加載物體模型的頂點(diǎn)數(shù)據(jù),則可以建立一物體模型。
(2)加載紋理圖像數(shù)據(jù),生成紋理對(duì)象;
物體模型僅表示物體的形狀,而物體表面的微觀細(xì)節(jié)則需要通過紋理圖像或是表面顏色來實(shí)現(xiàn)。紋理是矩形的圖像數(shù)據(jù)數(shù)組,把紋理映射到物體模型的表面區(qū)域,稱為紋理貼圖或紋理映射。通過加載紋理圖像數(shù)據(jù),可生成紋理對(duì)象,該紋理對(duì)象為指向紋理的一個(gè)唯一句柄。
(3)初始化光照等信息;
初始化光源的顏色、位置及光照類型等信息。光源的顏色可以通過色溫及顯色指數(shù)來設(shè)置,色溫表示燈光本身的色外觀,顯色指數(shù)表示光源對(duì)物體顏色呈現(xiàn)的程度。光源處于不同的位置,其物體顯示的效果也不同。光照類型則包括環(huán)境光、散射光、鏡面光和輻射光等。通過對(duì)光照信息的設(shè)置,可以使得物體產(chǎn)生不同的顯示效果。(4)加載著色器程序,生成著色器程序?qū)ο?。將已?jīng)編輯好的著色器程序加載至OpenGL中,且生成著色器程序?qū)ο?,例如頂點(diǎn)著色器、片段著色器等等。在這里需要說明的是,本實(shí)施例中OpenGL應(yīng)用程序的初始化,還可以根據(jù)具體情況進(jìn)行其他信息的初始化,例如初始化霧的顏色、計(jì)算方式、濃度、起始、終止等信息。步驟S120、根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元;物體模型的位置狀態(tài)信息可以表示物體模型的位置,及處于動(dòng)態(tài)或靜態(tài),以供圖形處理單元根據(jù)其位置狀態(tài)信息,進(jìn)行相應(yīng)的位置變換。物體模型的alpha透明因子用于顯示物體模型的透明顯示,處于0至1之間。當(dāng)alpha透明因子為0時(shí),則表示物體模型完全透明;當(dāng)alpha透明因子為1時(shí),則表示物體模型完全不透明。根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子(1)若物體模型為靜態(tài)時(shí),則物體模型的位置狀態(tài)信息不變,物體模型的alpha透明因子為預(yù)先設(shè)置的alpha透明因子;當(dāng)物體模型為靜態(tài)時(shí),其最先建立模型時(shí)預(yù)先設(shè)置其alpha透明因子,例如該 alpha透明因子為0. 5,則其物體模型的alpha透明因子一直為0. 5。(2)若物體模型為動(dòng)態(tài)時(shí),則物體模型的位置狀態(tài)將發(fā)生改變,計(jì)算位置發(fā)生變化后物體模型的位置信息,物體模型的alpha透明因子根據(jù)變換公式進(jìn)行規(guī)則變化。例如,若物體模型需要其透明度從完全不透明到完全透明進(jìn)行五次變化,則物體模型的alpha透明因子的變換公式為alphiin = l_l/5*n,其中η為0,1,2,3,4。具體地說,第一次物體模型顯示時(shí)其透明度為完全不透明,第二次物體模型顯示時(shí)其以透明因子為0. 8 的狀態(tài)透明顯示,第五次物體模型顯示時(shí)其以透明因子為0. 2的狀態(tài)透明顯示。步驟S130、圖形處理單元對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);參照?qǐng)D2,步驟S130進(jìn)一步包括步驟S131、根據(jù)應(yīng)用程序初始化信息及物體模型的位置狀態(tài)信息,進(jìn)行位置及光照變換處理,并對(duì)其進(jìn)行光柵化,形成像素點(diǎn)信息;首先將應(yīng)用程序初始化信息中物體模型的頂點(diǎn)數(shù)據(jù)進(jìn)行位置變換,轉(zhuǎn)換為以觀察點(diǎn)為基點(diǎn)的頂點(diǎn)數(shù)據(jù),將光照信息進(jìn)行光照變換,并將其進(jìn)行光柵化,通過計(jì)算將物體模型的圖形轉(zhuǎn)換為像素點(diǎn)信息。其次將應(yīng)用程序初始化信息中紋理圖像數(shù)據(jù)映射至相應(yīng)的像素點(diǎn)上。步驟S132、根據(jù)alpha透明因子,對(duì)光柵化處理的像素點(diǎn)信息進(jìn)行顏色處理,生成圖像片段信息;每個(gè)像素點(diǎn)上的顏色由R(Red)、G(Green)、B(Blue)、A(Alpha)四個(gè)值來表示,R、 G、B、A四個(gè)值的范圍均為0. 0 1. 0,如果某顏色的分量越大,則對(duì)應(yīng)的顏色分量越亮,如果某顏色的分量越小,則對(duì)應(yīng)的顏色分量越暗。此處,根據(jù)alpha透明因子,可以對(duì)光柵化處理的像素點(diǎn)信息在相應(yīng)的像素點(diǎn)上進(jìn)行顏色處理,生成最終的像素點(diǎn)顏色,并生成圖像片段fe息。步驟S133、將所述圖像片段信息與原有的片段信息進(jìn)行片段測(cè)試及混合,生成最終圖像信息,并將其輸出至幀緩存區(qū)。首先將所生成的片段與原有的片段進(jìn)行片段測(cè)試,再將其進(jìn)行混合,形成最終圖像信息,并將其輸出至幀緩存區(qū)。該片段測(cè)試可包括(1)裁剪測(cè)試裁剪測(cè)試用于限制圖形的繪制區(qū)域。預(yù)先設(shè)置一個(gè)矩形的裁剪窗口,進(jìn)行裁剪測(cè)試時(shí),只有在該裁剪窗口以內(nèi)的像素點(diǎn)才能被繪制,則其他的像素點(diǎn)均會(huì)被丟棄。O) alpha 測(cè)試可以預(yù)先設(shè)置一 alpha值,則當(dāng)進(jìn)行alpha測(cè)試時(shí),只有像素點(diǎn)的alpha值滿足條件的像素點(diǎn)才能通過,才可以進(jìn)行繪制;否則不可以進(jìn)行繪制。該條件可以包括始終通過、始終不通過、大于alpha設(shè)定值則通過、小于alpha設(shè)定值則通過、等于alpha設(shè)定值則通過、大于或等于alpha設(shè)定值則通過、小于等于alpha設(shè)定值則通過、不等于alpha設(shè)定值則通過。例如,所生成的片段大部分都是透明的,則可以在片段中需要透明的地方的alpha 值設(shè)置為0.0,不需要透明的地方的alpha值設(shè)置為1. 0,然后再設(shè)置alpha測(cè)試的通過條件為“大于0. 5則通過”。則通過alpha測(cè)試后即可表示該片段。(3)模板測(cè)試模板測(cè)試是先清除模板緩沖區(qū),并且設(shè)置一個(gè)值,設(shè)置模板比較函數(shù)以及模板測(cè)試通過和失敗時(shí)模板值如何變化的行為。只有通過了模板測(cè)試的像素值才會(huì)被繪制,否則不可進(jìn)行繪制,比較條件包括始終通過、始終不通過、大于設(shè)定值則通過、小于設(shè)定值則通過、等于設(shè)定值則通過、大于或等于設(shè)定值則通過、小于等于設(shè)定值則通過、不等于設(shè)定值則通過。測(cè)試通過或失敗模板值變化情況包括增加、減小、不變。(3)深度測(cè)試深度是指像素點(diǎn)與觀察點(diǎn)之間的距離。可以預(yù)先設(shè)置一深度值,當(dāng)像素點(diǎn)的深度值與該預(yù)設(shè)的深度值進(jìn)行比較,滿足條件時(shí)則通過深度測(cè)試。該條件包括始終通過、始終不通過、大于預(yù)設(shè)的深度值則通過、小于預(yù)設(shè)的深度值則通過、等于預(yù)設(shè)的深度值則通過、 大于或等于預(yù)設(shè)的深度值則通過、小于等于預(yù)設(shè)的深度值則通過、不等于預(yù)設(shè)的深度值則通過。步驟S140、顯示單元根據(jù)所述幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。顯示單元根據(jù)輸出至所述幀緩存區(qū)的圖像信息,進(jìn)行圖形顯示。在這里需要說明的是,若中央處理單元CPU退出顯示程序,則結(jié)束本流程;若中央處理單元CPU不退出顯示程序,則返回步驟S120,重新計(jì)算物體模型的位置狀態(tài)信息及 alpha透明因子,圖形處理單元GPU根據(jù)物體模型的位置狀態(tài)信息及alpha透明因子進(jìn)行相應(yīng)的處理,生成圖像信息,供顯示單元進(jìn)行圖形顯示。本發(fā)明實(shí)施例通過啟動(dòng)OpenGL應(yīng)用程序后,計(jì)算alpha透明因子,再將初始化信息與alpha透明因子發(fā)送至圖形處理單元GPU處理,從而使GPU根據(jù)該alpha透明因子控制物體模型透明度的作用。因此,不需要多張紋理圖片資源,只需一張圖或不要圖,但物體模型要有顏色,也不需要不斷地更改獲取的等同原始紋理圖像的紋理數(shù)據(jù)去重新產(chǎn)生紋理對(duì)象快速替換物體模型已綁定的紋理對(duì)象,從而節(jié)約了存儲(chǔ)空間,大大節(jié)約了內(nèi)存占用量, 降低了 CPU占用率。圖3是本發(fā)明基于OpenGL的透明/半透明顯示處理裝置一實(shí)施例的結(jié)構(gòu)示意圖。參照?qǐng)D3,本發(fā)明基于OpenGL的透明/半透明顯示處理裝置包括中央處理單元110,用于啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;還用于根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元120 ;圖形處理單元120,用于對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及 alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);顯示單元130,用于根據(jù)幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。中央處理單元110啟動(dòng)OpenGL應(yīng)用程序,對(duì)其進(jìn)行初始化,并加載設(shè)置應(yīng)用程序初始化信息。例如,初始化OpenGL運(yùn)行環(huán)境,建立顯示區(qū)域,設(shè)置觀察點(diǎn),加載物體模型的信息。該物體模型的信息可包括物體模型頂點(diǎn)數(shù)據(jù)、紋理圖像數(shù)據(jù)、光照信息及著色器程序等等。然后,中央處理單元110根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的alpha透明因子,然后將其與應(yīng)用程序初始化信息發(fā)送至圖形處理單元(Graphic Processing Unit,GPU) 120。該圖形處理單元120為對(duì)應(yīng)用程序初始化信息及alpha透明因子進(jìn)行處理,生成最終圖像信息, 輸出至幀緩存區(qū)。顯示單元130則根據(jù)幀緩存區(qū)中的最終圖像信息,進(jìn)行圖形顯示。本發(fā)明實(shí)施例通過啟動(dòng)OpenGL應(yīng)用程序后,計(jì)算alpha透明因子,再將初始化信息與alpha透明因子發(fā)送至圖形處理單元GPU處理,從而使GPU根據(jù)該alpha透明因子控制物體模型透明度的作用。因此,不需要多張紋理圖片資源,只需一張圖或不要圖,但物體模型要有顏色,也不需要不斷地更改獲取的等同原始紋理圖像的紋理數(shù)據(jù)去重新產(chǎn)生紋理對(duì)象快速替換物體模型已綁定的紋理對(duì)象,從而節(jié)約了存儲(chǔ)空間,大大節(jié)約了內(nèi)存占用量, 降低了 CPU占用率。參照?qǐng)D4,上述圖形處理單元120進(jìn)一步包括頂點(diǎn)著色單元121,用于根據(jù)應(yīng)用程序初始化信息及物體模型的位置狀態(tài)信息,進(jìn)行位置及光照變換處理;光柵處理單元122,用于對(duì)位置及光照變換后的數(shù)據(jù),進(jìn)行光柵化,形成像素點(diǎn)信息;片段著色單元123,用于根據(jù)alpha透明因子,對(duì)光柵化處理后的像素點(diǎn)信息進(jìn)行顏色處理,并生成圖像片段信息;混合處理單元124,將所述圖像片段信息與原有的片段信息進(jìn)行片段測(cè)試及混合, 生成最終圖像信息,并將其輸出至幀緩存區(qū)。首先頂點(diǎn)著色單元121將應(yīng)用程序初始化信息中物體模型的頂點(diǎn)數(shù)據(jù)進(jìn)行位置變換,轉(zhuǎn)換為以觀察點(diǎn)為基點(diǎn)的頂點(diǎn)數(shù)據(jù),再將光照信息進(jìn)行光照變換,并通過光柵處理單元122將其進(jìn)行光柵化,通過計(jì)算將物體模型的圖形轉(zhuǎn)換為像素點(diǎn)信息,并將應(yīng)用程序初始化信息中紋理圖像數(shù)據(jù)映射至相應(yīng)的像素點(diǎn)上。然后,片段著色器123再根據(jù)alpha透明因子,對(duì)光柵化處理的像素點(diǎn)進(jìn)行顏色處理,并生成片段?;旌咸幚韱卧? 將片段著色器123生成的圖像片段信息與原有的片段信息進(jìn)行片段測(cè)試,再將其進(jìn)行混合,形成最終圖像信息,并將其輸出至幀緩存區(qū),以供顯示單元130進(jìn)行圖形顯示。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制其專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于OpenGL的透明/半透明顯示處理方法,其特征在于,包括以下步驟 啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元;圖形處理單元對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);顯示設(shè)備根據(jù)所述幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息的步驟具體包括加載物體模型頂點(diǎn)數(shù)據(jù); 加載紋理圖像數(shù)據(jù),生成紋理對(duì)象; 初始化光照信息;加載著色器程序,生成著色器程序?qū)ο蟆?br>
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述圖形處理單元對(duì)所述應(yīng)用程序初始化信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū)的步驟具體包括根據(jù)應(yīng)用程序初始化信息,進(jìn)行位置及光照變換處理,并對(duì)其進(jìn)行光柵化,形成像素點(diǎn) fn息;根據(jù)alpha透明因子,對(duì)光柵化處理后的像素點(diǎn)信息進(jìn)行顏色處理,生成圖像片段信息,將所述圖像片段信息與原有的片段信息進(jìn)行片段測(cè)試及混合,生成最終圖像信息,并將其輸出至幀緩存區(qū)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述片段測(cè)試包括裁剪測(cè)試、alpha測(cè)試、 模板測(cè)試、深度測(cè)試。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的 alpha透明因子的步驟具體為若物體模型為靜態(tài),則alpha透明因子為預(yù)置alpha值; 若物體模型為動(dòng)態(tài),則alpha透明因子根據(jù)變換公式有規(guī)則地變化。
6.一種基于OpenGL的透明/半透明顯示處理裝置,其特征在于,包括中央處理單元、圖形處理單元及顯示單元,其中中央處理單元,用于啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;還用于根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元;圖形處理單元,用于對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及alpha 透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);顯示設(shè)備,用于根據(jù)所述幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述中央處理單元在初始化OpenGL時(shí)具體用于加載物體模型頂點(diǎn)數(shù)據(jù); 加載紋理圖像數(shù)據(jù),生成紋理對(duì)象; 初始化光照信息;加載著色器程序,生成著色器程序?qū)ο蟆?br>
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述圖形處理單元具體包括 頂點(diǎn)著色單元,用于根據(jù)應(yīng)用程序初始化信息,進(jìn)行位置及光照變換處理; 光柵處理單元,用于對(duì)位置及光照變換后的數(shù)據(jù),進(jìn)行光柵化,形成像素點(diǎn)信息; 片段著色單元,用于根據(jù)alpha透明因子,對(duì)光柵化處理后的像素點(diǎn)信息進(jìn)行顏色處理,并生成圖像片段信息;混合處理單元,用于將所述圖像片段信息與原有的片段信息進(jìn)行片段測(cè)試及混合,生成最終圖像信息,并將其輸出至幀緩存區(qū)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述片段測(cè)試包括裁剪測(cè)試、alpha測(cè)試、 模板測(cè)試、深度測(cè)試。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述中央處理單元在計(jì)算alpha透明因子時(shí),具體用于若物體模型為靜態(tài),則alpha透明因子為預(yù)置alpha值; 若物體模型為動(dòng)態(tài),則alpha透明因子根據(jù)變換公式有規(guī)則地變化。
全文摘要
本發(fā)明公開一種基于OpenGL的透明/半透明顯示處理方法及裝置。該方法包括啟動(dòng)OpenGL應(yīng)用程序,加載設(shè)置應(yīng)用程序初始化信息;根據(jù)預(yù)置規(guī)則,計(jì)算物體模型的位置狀態(tài)信息及alpha透明因子,并將其與應(yīng)用程序初始化信息一起發(fā)送至圖形處理單元;圖形處理單元對(duì)所述應(yīng)用程序初始化信息、物體模型的位置狀態(tài)信息及alpha透明因子進(jìn)行處理,并將處理結(jié)果輸出至幀緩存區(qū);顯示設(shè)備根據(jù)所述幀緩存區(qū)的處理結(jié)果,進(jìn)行圖形顯示。本發(fā)明只需一張圖或不要圖,但物體模型要有顏色,也不需要不斷地更改獲取的等同原始紋理圖像的紋理數(shù)據(jù)去重新產(chǎn)生紋理對(duì)象快速替換物體模型已綁定的紋理對(duì)象,從而節(jié)約了存儲(chǔ)空間,大大節(jié)約了內(nèi)存占用量,降低了CPU占用率。
文檔編號(hào)G06T15/50GK102509335SQ20111028646
公開日2012年6月20日 申請(qǐng)日期2011年9月23日 優(yōu)先權(quán)日2011年9月23日
發(fā)明者畢勝旺 申請(qǐng)人:深圳Tcl新技術(shù)有限公司