專利名稱:基于OpenGL的倒影顯示處理裝置及方法
技術領域:
本發(fā)明涉及圖像顯示技術領域,尤其涉及一種基于OpenGL的倒影顯示處理裝置及方法。
背景技術:
在3D UI (User hterface,用戶界面)設計或現實場景模擬時,有時需要模擬倒影效果,使畫質視覺效果更逼真,更符合現實世界,如水面、玻璃等平整光澤面的倒影效果。 OpenGL (Open Graphics Library,開放的圖形程序接口)是一個功能強大、調用方便的底層圖形庫,通過OpenGL可以實現多種倒影效果。目前,使用OpenGL繪制倒影效果的方法主要有以下幾種方式一在產生倒影面的上下各繪制一次物體模型,再在倒影的前面即視點前方, 繪制一個經過精心制作的蒙板面片,與倒影混合,使倒影看起來具有現實中朦朧漸變淡化的效果。方法二分別繪制物體模型和該物體模型的倒影,物體模型的倒影紋理圖像不同于物體本身的紋理圖像,需要美工分別設計,才可產生朦朧漸變淡化的效果。方法三與方法二類似,只是倒影紋理圖像取自物體模型的原始紋理圖像,經過程序處理后,具有朦朧漸變淡化效果,產生倒影的紋理對象,但是這樣比較消耗CPU資源,且只是易于處理面片類型的倒影,對于非平面三維立體物體的倒影的處理則很困難。上述現有的幾種倒影繪制方式中,方法一雖然通用,但是根據物體模型的位置不同或場景不同,需要重新制作蒙板,由于蒙板面片制作復雜,使得倒影繪制速度慢;對于方法二,美工工作量大,制作過程不靈活,三維模型的面片制作復雜,需要進行紋理坐標拆分映射;方法三,占用CPU資源過多,內存消耗較大,紋理也比較多,且對于非平面物體模型難處理。
發(fā)明內容
本發(fā)明的主要目的在于提供一種繪制過程簡單、占用資源少且倒影逼真的基于 OpenGL的倒影顯示處理裝置及方法。為了達到上述目的,本發(fā)明提出一種基于開放的圖形程序接口 OpenGL的倒影顯示處理方法,包括加載及計算物體模型參數,獲取所述物體模型的紋理貼圖像素數據和/或默認頂點顏色值;對所述物體模型參數進行頂點位置空間轉換以及裁剪操作;對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理;根據所述紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。優(yōu)選地,所述對物體模型參數進行頂點位置空間轉換以及裁剪操作的步驟包括
對所述物體模型參數進行坐標轉換,以及裁剪操作;根據坐標轉換及剪裁操作后的物體模型參數確定所述物體模型的倒影范圍;計算所述物體模型的倒影的顏色因子值及透明度值。優(yōu)選地,所述根據紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示的步驟包括當所述物體模型具有紋理貼圖時,根據所述物體模型參數中的紋理坐標的映射關系,采樣并計算所述紋理貼圖像素數據中各頂點的像素顏色;根據所述各頂點的像素顏色及所述透明度值,計算各頂點的最終像素顏色值;將所述各頂點的最終像素顏色值貼在所述物體模型上,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。優(yōu)選地,所述根據紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成并顯示所述物體模型的倒影圖像的步驟包括當所述物體模型不具有紋理貼圖時,根據所述默認頂點顏色值以及所述透明度值,計算各頂點的最終像素顏色值;將所述各頂點的最終像素顏色值貼在所述物體模型上,生成并顯示所述物體模型的倒影圖像。優(yōu)選地,所述物體模型參數至少包括頂點數據、高度、倒影方向、深度;所述頂點數據包括位置信息、法線、顏色及紋理坐標。本發(fā)明還提出一種基于OpenGL的倒影顯示處理裝置,包括主控模塊,用于加載及計算物體模型參數,并獲取所述物體模型的紋理貼圖像素數據和/或默認頂點顏色值;頂點著色模塊,用于對所述物體模型參數進行頂點位置空間轉換以及裁剪操作;光柵化模塊,用于對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理;片段著色模塊,用于根據所述紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。優(yōu)選地,所述頂點著色模塊包括坐標轉換單元,用于對所述物體模型參數進行坐標轉換,以及裁剪操作;倒影范圍確定單元,用于根據坐標轉換及裁剪操作后的物體模型參數確定所述物體模型的倒影范圍;因子計算單元,用于計算所述物體模型的倒影的顏色因子值及透明度值。優(yōu)選地,所述片段著色模塊包括紋理采樣單元,用于當所述物體模型具有紋理貼圖時,根據所述物體模型參數中的紋理坐標的映射關系,采樣并計算所述紋理貼圖像素數據中各頂點的像素顏色;像素顏色計算單元,用于根據所述各頂點的像素顏色及所述透明度值,計算各頂點的最終像素顏色值;上色單元,將所述各頂點的最終像素顏色值貼在所述物體模型上,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。優(yōu)選地,所述像素顏色計算單元,還用于當所述物體模型不具有紋理貼圖時,根據所述默認頂點顏色值以及所述透明度值,計算各頂點的最終像素顏色值;所述上色單元,還用于將所述各頂點的最終像素顏色值貼在所述物體模型上,生成并顯示所述物體模型的倒影圖像。優(yōu)選地,所述物體模型參數至少包括頂點數據、高度、倒影方向、深度;所述頂點數據包括位置信息、法線、顏色及紋理坐標。本發(fā)明提出的一種基于OpenGL的倒影顯示處理裝置及方法,在OpenGL繪圖過程中,通過參數控制實現物體模型的倒影效果,模擬現實更逼真,朦朧漸變淡化不依賴于物體模型的原始紋理圖片,也不依賴于原始紋理圖像的格式、顏色通道數量、顏色字節(jié)長,只需一張紋理圖片或不需要紋理圖片(但物體模型要有顏色),不需要特殊處理倒影紋理圖像, 也不需要專門設計算法去處理倒影紋理圖像,即可產生倒影紋理,節(jié)省了存儲空間,減少 CPU的運算量和內存占用量,為CPU騰出更多時間去做其它計算,充分發(fā)揮GPU的能力,實現更好的畫面效果和流暢度;而且減輕了 UI設計師的負擔,改變了 GPU的固定流水線作業(yè)方式,為GPU帶來更高效的靈活性和適應性,充分發(fā)揮GPU性能。
圖1是本發(fā)明基于OpenGL的倒影顯示處理方法一實施例流程示意圖;圖2是本發(fā)明基于OpenGL的倒影顯示處理方法一實施例中對物體模型參數進行頂點位置空間轉換以及裁剪操作的流程示意圖;圖3是本發(fā)明基于OpenGL的倒影顯示處理方法一實施例中根據紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成物體模型的倒影圖像,輸出至顯示設備進行顯示的流程示意圖;圖4是本發(fā)明基于OpenGL的倒影顯示處理裝置一實施例的結構示意圖;圖5是本發(fā)明基于OpenGL的倒影顯示處理裝置一實施例中頂點著色模塊的結構示意圖;圖6是本發(fā)明基于OpenGL的倒影顯示處理裝置一實施例中片段著色模塊的結構示意圖。為了使本發(fā)明的技術方案更加清楚、明了,下面將結合附圖作進一步詳述。
具體實施例方式本發(fā)明實施例解決方案主要是通過CPU加載及計算物體模型參數,獲取物體模型的紋理貼圖像素數據和/或默認頂點顏色值;之后由GPU依次對物體模型參數進行頂點位置空間轉換以及裁剪操作、光柵化處理及片段著色處理,生成物體模型的倒影圖像,輸出至顯示設備進行顯示。通過參數控制實現物體模型的倒影效果,模擬現實更逼真,朦朧漸變淡化不依賴于物體模型的原始紋理圖片,也不依賴于原始紋理圖像的格式、顏色通道數量、 顏色字節(jié)長,以節(jié)省存儲空間,并減少CPU的運算量和內存占用量。本發(fā)明通過OpenGL圖形編程技術以及OpenGL Shader Language顯卡編程技術實現。其中涉及的硬件包括CPU (Central ProcessingUnit,中央處理器)、GPU (GraphicProcessing Unit,圖形處理器)以及顯示設備。GPU中有光柵化器、紋理內存等硬件實體以及頂點著色器、片段著色器程序。以下實施例中提及的R、G、B、A值分別對應顏色成分的紅、綠、藍三色以及透明度 alpha。一副圖像的像素格式不一定有上述顏色成分,但可拼裝成上述顏色成分格式。將紋理映射到物體模型表面或給物體模型上色時,傳遞物體模型的高度到相應的著色器,根據高度和倒影方向計算對應位置的R、G、B、A因子值,通過片段著色器在物體模型場景等轉化為像素,繪制到幀緩存區(qū)中顏色緩存之前對最終倒影的像素顏色控制操作,結合OpenGL固有的混合功能,達到參數控制實現倒影效果。本發(fā)明把像素顏色的計算應用到GPU中處理, 操作靈活,也充分發(fā)揮GPU的性能。并且可在像素輸出到幀緩存區(qū)前進行一次處理,效率高,可以大面積成塊處理。具體地,如圖1所示,本發(fā)明一實施例提出一種基于OpenGL的倒影顯示處理方法, 包括步驟S101,加載及計算物體模型參數,獲取物體模型的紋理貼圖像素數據和/或默認頂點顏色值;本步驟可以在CPU中完成,由CPU加載及計算物體模型參數,首先,由CPU啟動 OpenGL應用程序,加載OpenGL圖形動態(tài)庫,初始化應用程序,調用OpenGL圖形動態(tài)庫的 API ;之后,由API調用對應的硬件驅動程序接口 ;經過后續(xù)的GPU進行圖形處理后,將得到的倒影圖像輸出到顯示設備上。其中,物體模型參數包括頂點數據、模型物體的高度、倒影方向、深度、光線及霧坐標等。頂點數據包括位置信息、法線、顏色及紋理坐標。本實施例中物體模型可以為具有紋理貼圖的物體模型,也可以為不具有紋理貼圖的物體模型,而該物體模型本身具有默認的物體顏色即本實施例所稱默認頂點顏色值。根據物體模型是否具有紋理貼圖,后續(xù)對物體模型的上色過程則不相同(詳見步驟S104)。CPU除了加載及計算物體模型參數,還需獲取物體模型相應的像素顏色參數,對于具有紋理貼圖的物體模型,則獲取物體模型的紋理貼圖像素數據,對于不具有紋理貼圖的物體模型,則獲取物體模型的默認頂點顏色值,也可能是上述兩種數據均獲取(針對具有物體顏色且具有紋理貼圖的物體模型)。CPU將加載及計算的物體模型參數,以及獲取的物體模型的紋理貼圖像素數據和 /或默認頂點顏色值發(fā)送至GPU,由GPU進行后續(xù)的圖像處理。其中獲取的物體模型的紋理貼圖像素數據存儲在GPU中的紋理內存,默認頂點顏色值則保存在GPU中的像素操作模塊。步驟S102,對物體模型參數進行頂點位置空間轉換以及裁剪操作;本步驟通過GPU中的頂點著色器程序來完成,通過頂點著色器程序處理CPU傳送過來的物體模型參數,進行空間位置數據變換以及R、G、B、A因子計算。具體將物體模型參數的世界坐標轉換為視點坐標系統(tǒng)中,然后根據坐標轉換后的物體模型參數確定物體模型的倒影范圍,再根據物體模型參數中的高度和倒影方向計算物體模型的倒影的顏色因子值及透明度值(即R、G、B、A因子),作為片段著色器的輸入。以某個代碼舉例說明R、G、B、A因子值的具體計算原理將物體模型倒影的方向與位置高度相乘,得到的結果與倒影深度相比較,若結果在倒影深度以內的,則計算指定一種 R、G、B、A因子值;若結果大于倒影深度,則R、G、B、A因子不變,都為1.0。該計算方法簡潔、 通用、快速、方便且高效。步驟S103,對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理;光柵化是一種將基本圖元轉化為二維圖像的處理。轉化后的圖像的每個像素點都包括諸如顏色和深度的信息。因此,基本圖元的光柵化由兩部分工作組成。第一部分工作是決定窗口坐標中的哪些整型柵格區(qū)域被基本圖元占用;第二部分工作是分配一個顏色值和一個深度值到各個區(qū)域。處理的結果會被傳遞到GL的下一個平臺(片段操作),在那里利用消息區(qū)更新幀緩存中的適當區(qū)域。此處的光柵化操作是指上述第一部分工作。本實施例中光柵化處理是指在視點坐標系中對物體模型柵格圖元化,具體進行點、線、多邊形、位圖及像素矩形等的光柵化處理。步驟S104,根據紋理貼圖像素數據,對光柵化處理后的物體模型參數進行片段著色處理,生成物體模型的倒影圖像,輸出至顯示設備進行顯示。本步驟在GPU中的片段著色器完成,片段著色器根據物體模型參數中紋理坐標的映射關系,進行紋理采樣,輸出像素顏色。由幀緩存區(qū)接受片段著色器輸出的像素顏色,以及像素深度等信息或接受直接由像素操作功模塊輸出的數據(對于不具有紋理貼圖的物體模型)。之后,提取紋理圖像數據,指定紋理維數和過濾器等參數,生成紋理對象,產生倒影圖像,輸出到顯示設備進行顯示。其中,紋理操作的數據也可以直接從幀緩存區(qū)中獲取, 而不一定來自外部的紋理圖像數據。具體地,如圖2所示,步驟S102包括步驟S1021,對物體模型參數進行坐標轉換,以及裁剪操作;步驟S1022,根據坐標轉換及裁剪操作后的物體模型參數確定物體模型的倒影范圍;步驟S1023,計算物體模型的倒影的顏色因子值及透明度值。如圖3所示,步驟S104包括步驟S1041,判斷物體模型是否具有紋理貼圖;若是,則進入步驟S1042 ;否則,進入步驟S1045 ;步驟S1042,根據物體模型參數中的紋理坐標的映射關系,采樣并計算紋理貼圖像素數據中各頂點的像素顏色;步驟S1043,根據各頂點的像素顏色及透明度值,計算各頂點的最終像素顏色值;步驟S1044,將各頂點的最終像素顏色值貼在物體模型上,生成物體模型的倒影圖像,輸出至顯示設備進行顯示。步驟S1045,根據默認頂點顏色值以及透明度值,計算各頂點的最終像素顏色值; 并進入步驟S1044。在具體實施過程中,用GLSL語言正確編寫著色器程序,成功編譯連接著色器程序對象。設置物體模型的高度參數,倒影方向和深度信息后,在頂點著色器中,計算倒影朦朧漸變淡化位置對應的R、G、B、A因子值,傳遞到片段著色器,在片段著色器采樣紋理顏色或直接接受物體顏色輸出此片段最終像素顏色前,把倒影的R、G、B顏色因子值以及透明度值 alpha應用到此顏色上,重新計算最終顏色值。這樣,此片段的最終輸出像素的顏色就不同于倒影的原始物體模型顏色,與幀緩存區(qū)中已有的顏色按照指定的混合方式進行混合,即可達到理想逼真的倒影效果。下面舉例進行說明對于動態(tài)倒影的制作,傳統(tǒng)做法或者是設計多張倒影紋理圖像,或者設計某個算法,以原始紋理圖像為基礎,每幀都需要重新計算修改紋理圖像,生成紋理對象,這種多張蒙板的設計方法不切實際,而且增加了美工的工作量,對內存的消耗及CPU的占用率也非常高,使得程序效率低。對于物體模型與倒影面不是完全對稱,物體模型位置方向傾斜的倒影的實現,如玻璃平面上斜放一個盒子,倒影也是傾斜,要求漸變淡化。現有方法一,采用蒙板的方法雖然可以實現上述效果,但是美工工作量大,程序效率不高,而且需要多繪制一個面片,CPU資源占用率高;現有的方法二,通過算法處理,由于不知紋理圖像與物體模型的紋理坐標映射關系,紋理圖像的哪些部分該處理,哪些不用都無法得知,因此該方法無法實現上述效果。而本發(fā)明方法解決了已知方法的上述難點,在使用時,只需要根據物體模型的高度和倒影方向,計算物體模型的哪些部分顏色需要漸變處理和對應的顏色視覺效果值,即可實現,該方法使用簡單,成塊處理,且高效通用。本實施例在不增加其他硬件成本的情況下,也不需要過多的紋理貼圖,節(jié)約了存儲空間,并大大節(jié)約內存占用量,減輕了 CPU負擔,給其他任務騰出更多的CPU時間片,大大提高了 CPU的效能,并減輕了 UI設計師的工作量。實現對物體模型倒影的參數控制接口函數后,即可對用戶界面上的3D物體模型倒影深度、顏色、變化程度進行參數處理,倒影效果更逼真,UI顯示效果、更美觀、時尚,從而提升產品的競爭力。如圖4所示,本發(fā)明一實施例還提出一種基于OpenGL的倒影顯示處理裝置,包括 主控模塊401、頂點著色模塊402、光柵化模塊403及片段著色模塊404,其中主控模塊401,用于加載及計算物體模型參數,并獲取所述物體模型的紋理貼圖像素數據和/或默認頂點顏色值;頂點著色模塊402,用于對物體模型參數進行頂點位置空間轉換以及裁剪操作;光柵化模塊403,用于對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理;片段著色模塊404,用于根據紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成物體模型的倒影圖像,輸出至顯示設備進行顯示。上述模塊中,主控模塊401可以設置在CPU中,頂點著色模塊402、光柵化模塊403 及片段著色模塊404分別對應GPU中頂點著色器程序、光柵化器、片段著色器程序。首先,由CPU中主控模塊401啟動OpenGL應用程序,加載OpenGL圖形動態(tài)庫,初始化應用程序,調用OpenGL圖形動態(tài)庫的API ;之后,由API調用對應的硬件驅動程序接口 ; 經過后續(xù)的GPU的頂點著色模塊402、光柵化模塊403及片段著色模塊404進行圖形處理后,將得到的倒影圖像輸出到顯示設備上。其中,物體模型參數包括頂點數據、模型物體的高度、倒影方向、深度、光線及霧坐標等。頂點數據包括位置信息、法線、顏色及紋理坐標。本實施例中物體模型可以為具有紋理貼圖的物體模型,也可以為不具有紋理貼圖的物體模型,而該物體模型本身具有默認的物體顏色即本實施例所稱默認頂點顏色值。根據物體模型是否具有紋理貼圖,后續(xù)對物體模型的上色過程則不相同。主控模塊401除了加載及計算物體模型參數,還需獲取物體模型相應的像素顏色參數,對于具有紋理貼圖的物體模型,則獲取物體模型的紋理貼圖像素數據,對于不具有紋理貼圖的物體模型,則獲取物體模型的默認頂點顏色值,也可能是上述兩種數據均獲取 (針對具有物體顏色且具有紋理貼圖的物體模型)。主控模塊401將加載及計算的物體模型參數,以及獲取的物體模型的紋理貼圖像素數據和/或默認頂點顏色值發(fā)送至GPU的頂點著色模塊402,由GPU的各模塊進行后續(xù)的圖像處理。其中主控模塊401獲取的物體模型的紋理貼圖像素數據存儲在GPU中的紋理內存,默認頂點顏色值保存在GPU中的像素操作模塊。之后,通過頂點著色模塊402處理主控模塊401傳送過來的物體模型參數,進行空間位置數據變換以及R、G、B、A因子計算。具體將物體模型參數的世界坐標轉換為視點坐標系統(tǒng)中,然后根據坐標轉換后的物體模型參數確定物體模型的倒影范圍,再根據物體模型參數中的高度和倒影方向計算物體模型的倒影的顏色因子值及透明度值(即R、G、B、A因子),作為片段著色器的輸入。以某個代碼舉例說明R、G、B、A因子值的具體計算原理將物體模型倒影的方向與位置高度相乘,得到的結果與倒影深度相比較,若結果在倒影深度以內的,則計算指定一種 R、G、B、A因子值;若結果大于倒影深度,則R、G、B、A因子不變,都為1.0。該計算方法簡潔、 通用、快速、方便且高效。之后,通過光柵化模塊403對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理。光柵化是一種將基本圖元轉化為二維圖像的處理。轉化后的圖像的每個像素點都包括諸如顏色和深度的信息。因此,基本圖元的光柵化由兩部分工作組成。第一部分工作是決定窗口坐標中的哪些整型柵格區(qū)域被基本圖元占用;第二部分工作是分配一個顏色值和一個深度值到各個區(qū)域。處理的結果會被傳遞到GL的下一個平臺(片段操作),在那里利用消息區(qū)更新幀緩存中的適當區(qū)域。此處的光柵化操作是指上述第一部分工作。本實施例中光柵化模塊403的光柵化處理是指在視點坐標系中對物體模型參數進行裁剪,具體進行點、線、多邊形、位圖及像素矩形等的光柵化處理。光柵化模塊403處理后的數據傳輸給片段著色模塊404,片段著色模塊404根據物體模型參數中紋理坐標的映射關系,進行紋理采樣,輸出像素顏色。由幀緩存區(qū)接受片段著色器輸出的像素顏色,以及像素深度等信息或接受直接由像素操作功模塊輸出的數據(對于不具有紋理貼圖的物體模型)。之后,提取紋理圖像數據,指定紋理維數和過濾器等參數,生成紋理對象,產生倒影圖像,輸出到顯示設備進行顯示。其中,紋理操作的數據也可以直接從幀緩存區(qū)中獲取, 而不一定來自外部的紋理圖像數據。
具體地,如圖5所示,頂點著色模塊402包括坐標轉換單元4021、倒影范圍確定單元4022及因子計算單元4023,其中坐標轉換單元4021,用于對物體模型參數進行坐標轉換,以及裁剪操作;倒影范圍確定單元4022,用于根據坐標轉換及裁剪操作后的物體模型參數確定物體模型的倒影范圍;因子計算單元4023,用于計算物體模型的倒影的顏色因子值及透明度值。如圖6所示,片段著色模塊404包括紋理采樣單元4041、像素顏色計算單元4042 及上色單元4043,其中紋理采樣單元4041,用于當物體模型具有紋理貼圖時,根據物體模型參數中的紋理坐標的映射關系,采樣并計算紋理貼圖像素數據中各頂點的像素顏色;像素顏色計算單元4042,用于根據各頂點的像素顏色及所述透明度值,計算各頂點的最終像素顏色值;上色單元4043,將各頂點的最終像素顏色值貼在物體模型上,生成物體模型的倒影圖像,輸出至顯示設備進行顯示。進一步的,像素顏色計算單元4042,還用于當物體模型不具有紋理貼圖時,根據默認頂點顏色值以及所述透明度值,計算各頂點的最終像素顏色值;上色單元4043,還用于將各頂點的最終像素顏色值貼在物體模型上,生成并顯示物體模型的倒影圖像。本實施例在OpenGL繪圖過程中,通過參數即可控制實現物體模型的倒影效果,模擬現實更逼真,朦朧漸變淡化,不依賴于其原始紋理圖片,也不依賴于原始紋理圖像的格式、顏色通道數量、顏色字節(jié)長,只需一張紋理圖片或不需要紋理圖片(但物體模型要有顏色),不需要特殊處理倒影紋理圖像,也不需要專門設計算法去處理倒影紋理圖像,產生倒影紋理。節(jié)省存儲空間,減少CPU的運算量和內存占用量,為CPU騰出更多時間進行其它計算,改變了 GPU的固定流水線作業(yè)方式,為GPU帶來更高效的靈活性和適應性,可更加發(fā)揮 GPU的能力,實現更好的畫面效果和流暢度;更減輕了 UI設計師的負擔。以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或流程變換,或直接或間接運用在其它相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。
權利要求
1.一種基于開放的圖形程序接口 OpenGL的倒影顯示處理方法,其特征在于,包括 加載及計算物體模型參數,獲取所述物體模型的紋理貼圖像素數據和/或默認頂點顏色值;對所述物體模型參數進行頂點位置空間轉換以及裁剪操作; 對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理; 根據所述紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。
2.根據權利要求1所述的方法,其特征在于,所述對物體模型參數進行頂點位置空間轉換以及裁剪操作的步驟包括對所述物體模型參數進行坐標轉換,以及裁剪操作;根據坐標轉換及剪裁操作后的物體模型參數確定所述物體模型的倒影范圍;計算所述物體模型的倒影的顏色因子值及透明度值。
3.根據權利要求2所述的方法,其特征在于,所述根據紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示的步驟包括當所述物體模型具有紋理貼圖時,根據所述物體模型參數中的紋理坐標的映射關系, 采樣并計算所述紋理貼圖像素數據中各頂點的像素顏色;根據所述各頂點的像素顏色及所述透明度值,計算各頂點的最終像素顏色值; 將所述各頂點的最終像素顏色值貼在所述物體模型上,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。
4.根據權利要求2所述的方法,其特征在于,所述根據紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成并顯示所述物體模型的倒影圖像的步驟包括當所述物體模型不具有紋理貼圖時,根據所述默認頂點顏色值以及所述透明度值,計算各頂點的最終像素顏色值;將所述各頂點的最終像素顏色值貼在所述物體模型上,生成并顯示所述物體模型的倒影圖像。
5.根據權利要求2、3或4所述的方法,其特征在于,所述物體模型參數至少包括頂點數據、高度、倒影方向、深度;所述頂點數據包括位置信息、法線、顏色及紋理坐標。
6.一種基于OpenGL的倒影顯示處理裝置,其特征在于,包括主控模塊,用于加載及計算物體模型參數,并獲取所述物體模型的紋理貼圖像素數據和/或默認頂點顏色值;頂點著色模塊,用于對所述物體模型參數進行頂點位置空間轉換以及裁剪操作; 光柵化模塊,用于對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理;片段著色模塊,用于根據所述紋理貼圖像素數據和/或默認頂點顏色值,對光柵化處理后的物體模型參數進行片段著色處理,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。
7.根據權利要求6所述的裝置,其特征在于,所述頂點著色模塊包括坐標轉換單元,用于對所述物體模型參數進行坐標轉換,以及裁剪操作;倒影范圍確定單元,用于根據坐標轉換及裁剪操作后的物體模型參數確定所述物體模型的倒影范圍;因子計算單元,用于計算所述物體模型的倒影的顏色因子值及透明度值。
8.根據權利要求7所述的裝置,其特征在于,所述片段著色模塊包括紋理采樣單元,用于當所述物體模型具有紋理貼圖時,根據所述物體模型參數中的紋理坐標的映射關系,采樣并計算所述紋理貼圖像素數據中各頂點的像素顏色;像素顏色計算單元,用于根據所述各頂點的像素顏色及所述透明度值,計算各頂點的最終像素顏色值;上色單元,將所述各頂點的最終像素顏色值貼在所述物體模型上,生成所述物體模型的倒影圖像,輸出至顯示設備進行顯示。
9.根據權利要求8所述的裝置,其特征在于,所述像素顏色計算單元,還用于當所述物體模型不具有紋理貼圖時,根據所述默認頂點顏色值以及所述透明度值,計算各頂點的最終像素顏色值;所述上色單元,還用于將所述各頂點的最終像素顏色值貼在所述物體模型上,生成并顯示所述物體模型的倒影圖像。
10.根據權利要求7、8或9所述的裝置,其特征在于,所述物體模型參數至少包括頂點數據、高度、倒影方向、深度;所述頂點數據包括位置信息、法線、顏色及紋理坐標。
全文摘要
本發(fā)明涉及一種基于OpenGL的倒影顯示處理裝置及方法,其方法包括加載及計算物體模型參數,獲取物體模型的紋理貼圖像素數據和/或默認頂點顏色值;對物體模型參數進行頂點位置空間轉換以及裁剪操作;對頂點位置空間轉換以及裁剪操作后的物體模型參數進行光柵化處理;根據紋理貼圖像素數據,對光柵化處理后的物體模型參數進行片段著色處理,生成物體模型的倒影圖像,輸出至顯示設備進行顯示。本發(fā)明在OpenGL繪圖過程中,通過參數控制實現物體模型的倒影效果,模擬現實更逼真,節(jié)省存儲空間,減少CPU的運算量和內存占用量;為GPU帶來更高效的靈活性和適應性,實現更好的畫面效果和流暢度;且減輕了UI設計師的負擔。
文檔編號G06T15/00GK102306391SQ201110279959
公開日2012年1月4日 申請日期2011年9月20日 優(yōu)先權日2011年9月20日
發(fā)明者畢勝旺 申請人:深圳Tcl新技術有限公司