一種3d圖形指令優(yōu)化方法
【技術領域】
[0001]本發(fā)明屬于計算機圖形領域,尤其涉及一種3D圖形指令優(yōu)化方法。
【背景技術】
[0002]3D圖形處理API到硬件操作主要以3D圖形指令形式實現(xiàn),3D圖形指令生成的優(yōu)化程度直接決定圖形處理的性能,目前公開研究中的圖形優(yōu)化大多針對圖形建模、圖形API的選用,未發(fā)現(xiàn)有針對3D圖形指令優(yōu)化相關內容。
【發(fā)明內容】
[0003]本發(fā)明主要提供一種3D圖形指令優(yōu)化方法,主要用于優(yōu)化圖形API生成圖形指令的優(yōu)化。
[0004]本發(fā)明的解決方案是:
[0005]該3D圖形指令優(yōu)化方法包括以下步驟:
[0006]I】獲取3D圖形API數(shù)據,
[0007]API數(shù)據包括:屬性數(shù)據、圖形數(shù)據、圖形繪制操作數(shù)據
[0008]API數(shù)據獲取的類型:可以為上述數(shù)據任一,任意兩個,或三個均有,當數(shù)據類型為兩個或兩個以上時,數(shù)據必然存在先后順序;依據數(shù)據的順序及類型選擇進入步驟2至4處理;
[0009]2】屬性數(shù)據處理
[0010]判斷圖形數(shù)據緩存中是否存在緩存的圖形數(shù)據,若存在,則緩存屬性數(shù)據并記錄修改標記,同時確保在屬性數(shù)據開始生成圖形指令之前緩存的圖形數(shù)據生成圖形指令完成;若不存在,則直接緩存屬性數(shù)據并記錄修改標記;
[0011]3】圖形數(shù)據處理
[0012]判斷屬性數(shù)據緩存中是否存在緩存的屬性數(shù)據,若存在,則緩存圖形數(shù)據并更新緩存圖形數(shù)據個數(shù),同時確保在圖形數(shù)據開始生成圖形指令之前緩存的屬性數(shù)據生成圖形指令完成;緩存前應首先判斷圖形數(shù)據緩存中是否存在足夠空間緩存本次圖形數(shù)據,若不存在,則發(fā)送最先緩存的圖形數(shù)據直至讓出本次圖形數(shù)據的緩存空間,緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);若存在,則直接緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);
[0013]若不存在緩存的屬性數(shù)據,則直接判斷圖形數(shù)據緩存中是否存在足夠空間緩存本次圖形數(shù)據,若不存在,則發(fā)送最先緩存的圖形數(shù)據直至讓出本次圖形數(shù)據的緩存空間,緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);若存在,則直接緩存本次圖形數(shù)據;
[0014]4】圖形繪制操作處理
[0015]判斷屬性數(shù)據緩存和圖形數(shù)據緩存中是否存在緩存數(shù)據,若存在,則確保緩存的圖形數(shù)據和屬性數(shù)據依據步驟2和步驟3中確定的先后順序生成圖形指令后,完成圖形繪制操作的圖形指令的生成;若不存在,則直接完成圖形繪制操作的圖形指令的生成。
[0016]該3D圖形指令優(yōu)化系統(tǒng)包括3D圖形API操作提取模塊、屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊、圖形指令生成模塊;所述3D圖形API操作提取模塊的輸出端分別與屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊的輸入端連接;屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊的輸出端分別與圖形指令生成模塊的輸入端連接;屬性設置緩沖模塊和圖形數(shù)據緩沖模塊之間相互通信,圖形繪制操作模塊的輸出端還分別與屬性設置緩沖模塊和圖形數(shù)據緩沖模塊的輸入端連接。
[0017]本發(fā)明的優(yōu)點是:
[0018]本發(fā)明提供的3D圖形指令優(yōu)化方法通過將圖形API所包含的操作分類操作,延時指令生成,只對不同類型的操作進行指令生成優(yōu)化,達到3D圖形指令的優(yōu)化。
【附圖說明】
[0019]圖1為本發(fā)明的方法原理示意圖。
【具體實施方式】
[0020]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清除明白,以下結合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0021]下面結合附圖和具體實施例對本發(fā)明的技術方案做進一步詳細描述。
[0022]該3D圖形指令優(yōu)化方法包括以下步驟:
[0023]I】獲取3D圖形API數(shù)據,
[0024]API數(shù)據包括:屬性數(shù)據、圖形數(shù)據、圖形繪制操作數(shù)據
[0025]API數(shù)據獲取的類型:可以為上述數(shù)據任一,任意兩個,或三個均有,當數(shù)據類型為兩個或兩個以上時,數(shù)據必然存在先后順序;依據數(shù)據的順序及類型選擇進入步驟2至4處理;
[0026]2】屬性數(shù)據處理
[0027]判斷圖形數(shù)據緩存中是否存在緩存的圖形數(shù)據,若存在,則緩存屬性數(shù)據并記錄修改標記,同時確保在屬性數(shù)據開始生成圖形指令之前緩存的圖形數(shù)據生成圖形指令完成;若不存在,則直接緩存屬性數(shù)據并記錄修改標記;
[0028]3】圖形數(shù)據處理
[0029]判斷屬性數(shù)據緩存中是否存在緩存的屬性數(shù)據,若存在,則緩存圖形數(shù)據并更新緩存圖形數(shù)據個數(shù),同時確保在圖形數(shù)據開始生成圖形指令之前緩存的屬性數(shù)據生成圖形指令完成;緩存前應首先判斷圖形數(shù)據緩存中是否存在足夠空間緩存本次圖形數(shù)據,若不存在,則發(fā)送最先緩存的圖形數(shù)據直至讓出本次圖形數(shù)據的緩存空間,緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);若存在,則直接緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);
[0030]若不存在緩存的屬性數(shù)據,則直接判斷圖形數(shù)據緩存中是否存在足夠空間緩存本次圖形數(shù)據,若不存在,則發(fā)送最先緩存的圖形數(shù)據直至讓出本次圖形數(shù)據的緩存空間,緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);若存在,則直接緩存本次圖形數(shù)據;
[0031]4】圖形繪制操作處理
[0032]判斷屬性數(shù)據緩存和圖形數(shù)據緩存中是否存在緩存數(shù)據,若存在,則確保緩存的圖形數(shù)據和屬性數(shù)據依據步驟2和步驟3中確定的先后順序生成圖形指令后,完成圖形繪制操作的圖形指令的生成;若不存在,則直接完成圖形繪制操作的圖形指令的生成。
[0033]該3D圖形指令優(yōu)化系統(tǒng)包括3D圖形API操作提取模塊、屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊、圖形指令生成模塊;所述3D圖形API操作提取模塊的輸出端分別與屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊的輸入端連接;屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊的輸出端分別與圖形指令生成模塊的輸入端連接;屬性設置緩沖模塊和圖形數(shù)據緩沖模塊之間相互通信,圖形繪制操作模塊的輸出端還分別與屬性設置緩沖模塊和圖形數(shù)據緩沖模塊的輸入端連接。
[0034]其中3D圖形API操作提取模塊用于解析3D圖形API所包含的圖形操作,處理API所攜帶的參數(shù),并根據圖形操作類型的不同,將圖形操作及數(shù)據分發(fā)給屬性設置緩沖模塊、圖形數(shù)據緩沖模塊和圖形繪制操作模塊;
[0035]屬性設置緩沖模塊接收3D圖形API操作提取模塊發(fā)送來的圖形操作及數(shù)據,觸發(fā)檢查圖形數(shù)據緩沖模塊圖形指令生成,并將圖形操作轉化為確定屬性的修改操作,將數(shù)據修改到該屬性,并標示為修改狀態(tài);接收圖形數(shù)據緩沖模塊和圖形繪制操作模塊發(fā)送來的圖形指令生成觸發(fā)信號,將所緩存的屬性設置更改信息發(fā)送給圖形指令生成模塊,生成圖形指令;
[0036]圖形數(shù)據緩沖模塊接收3D圖形API操作提取模塊發(fā)送來的圖形操作及數(shù)據,觸發(fā)檢查屬性設置緩沖模塊圖形指令生成,并將圖形操作轉化為確定的圖形數(shù)據操作,并記錄數(shù)據;接收屬性設置緩沖模塊和圖形繪制操作模塊發(fā)送來的圖形指令生成觸發(fā)信號,將所緩存的圖形數(shù)據發(fā)送給圖形指令生成模塊,生成圖形指令;
[0037]圖形繪制操作模塊接收3D圖形API操作提取模塊發(fā)送來的圖形操作及數(shù)據,觸發(fā)檢查屬性設置緩沖模塊和圖形數(shù)據緩沖模塊圖形指令生成,將圖形操作及數(shù)據轉化為圖形繪制操作發(fā)送給圖形指令生成模塊,生成圖形指令;
[0038]圖形指令生成模塊接收屬性設置緩沖模塊發(fā)送的屬性設置更改信息、圖形數(shù)據緩沖模塊發(fā)送的圖形數(shù)據、圖形繪制操作模塊發(fā)送的圖形繪制操作,轉化為圖形指令。
[0039]最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細地說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。
【主權項】
1.一種3D圖形指令優(yōu)化方法,其特征在于,包括以下步驟: I】獲取3D圖形API數(shù)據, API數(shù)據包括:屬性數(shù)據、圖形數(shù)據、圖形繪制操作數(shù)據 API數(shù)據獲取的類型:可以為上述數(shù)據任一,任意兩個,或三個均有,當數(shù)據類型為兩個或兩個以上時,數(shù)據必然存在先后順序;依據數(shù)據的順序及類型選擇進入步驟2至4處理; 2】屬性數(shù)據處理 判斷圖形數(shù)據緩存中是否存在緩存的圖形數(shù)據,若存在,則緩存屬性數(shù)據并記錄修改標記,同時確保在屬性數(shù)據開始生成圖形指令之前緩存的圖形數(shù)據生成圖形指令完成;若不存在,則直接緩存屬性數(shù)據并記錄修改標記; 3】圖形數(shù)據處理 判斷屬性數(shù)據緩存中是否存在緩存的屬性數(shù)據,若存在,則緩存圖形數(shù)據并更新緩存圖形數(shù)據個數(shù),同時確保在圖形數(shù)據開始生成圖形指令之前緩存的屬性數(shù)據生成圖形指令完成;緩存前應首先判斷圖形數(shù)據緩存中是否存在足夠空間緩存本次圖形數(shù)據,若不存在,則發(fā)送最先緩存的圖形數(shù)據直至讓出本次圖形數(shù)據的緩存空間,緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);若存在,則直接緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù); 若不存在緩存的屬性數(shù)據,則直接判斷圖形數(shù)據緩存中是否存在足夠空間緩存本次圖形數(shù)據,若不存在,則發(fā)送最先緩存的圖形數(shù)據直至讓出本次圖形數(shù)據的緩存空間,緩存本次圖形數(shù)據,并更新緩存圖形數(shù)據個數(shù);若存在,則直接緩存本次圖形數(shù)據; 4】圖形繪制操作處理 判斷屬性數(shù)據緩存和圖形數(shù)據緩存中是否存在緩存數(shù)據,若存在,則確保緩存的圖形數(shù)據和屬性數(shù)據依據步驟2和步驟3中確定的先后順序生成圖形指令后,完成圖形繪制操作的圖形指令的生成;若不存在,則直接完成圖形繪制操作的圖形指令的生成。2.—種3D圖形指令優(yōu)化系統(tǒng),其特征在于,包括3D圖形API操作提取模塊、屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊、圖形指令生成模塊;所述3D圖形API操作提取模塊的輸出端分別與屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊的輸入端連接;屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊的輸出端分別與圖形指令生成模塊的輸入端連接;屬性設置緩沖模塊和圖形數(shù)據緩沖模塊之間相互通信,圖形繪制操作模塊的輸出端還分別與屬性設置緩沖模塊和圖形數(shù)據緩沖模塊的輸入端連接。
【專利摘要】本發(fā)明主要提供一種3D圖形指令優(yōu)化方法,主要用于優(yōu)化圖形API生成圖形指令的優(yōu)化。該3D圖形指令優(yōu)化方法包括以下步驟:1】獲取3D圖形API數(shù)據;2】屬性數(shù)據處理;3】圖形數(shù)據處理;4】圖形繪制操作處理。該3D圖形指令優(yōu)化系統(tǒng)包括3D圖形API操作提取模塊、屬性設置緩沖模塊、圖形數(shù)據緩沖模塊、圖形繪制操作模塊、圖形指令生成模塊;本發(fā)明提供的3D圖形指令優(yōu)化方法通過將圖形API所包含的操作分類操作,延時指令生成,只對不同類型的操作進行指令生成優(yōu)化,達到3D圖形指令的優(yōu)化。
【IPC分類】G06T1/20, G06T15/00
【公開號】CN105550975
【申請?zhí)枴緾N201510927074
【發(fā)明人】馬城城, 田澤, 劉暉, 黎小玉, 聶瞾, 張琛
【申請人】中國航空工業(yè)集團公司西安航空計算技術研究所
【公開日】2016年5月4日
【申請日】2015年12月11日