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