亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

圖形處理方法及裝置的制造方法_4

文檔序號:9579043閱讀:來源:國知局
8] 對于dp4操作:也是實現(xiàn)源寄存器1和源寄存器2的點積操作,參數(shù)類型要求為 vec4類型,需要將源寄存器1和源寄存器2強制轉(zhuǎn)換為vec4型,同時,如果目標(biāo)寄存器 的類型不是float,則需將結(jié)果目標(biāo)的類型再強制轉(zhuǎn)化為目標(biāo)寄存器的類型,最終轉(zhuǎn)化為 strDestReg=dot(strSrclReg,strSrc2Reg)的形式。
[0099] 對于m33操作:就是實現(xiàn)源寄存器1和源寄存器2的矩陣連乘3*3操作,僅生成一 個3組件結(jié)果,目標(biāo)必須遮罩為.xyz,需要將源寄存器1強制轉(zhuǎn)換為vec3類型,并在轉(zhuǎn)化 過程中將源寄存器2所代表的由連續(xù)的3個寄存器所組成的mat3型數(shù)據(jù)的標(biāo)識符設(shè)置為 類似vcMatO的類型,同時,如果目標(biāo)寄存器的類型不是vec3類型,則需將結(jié)果目標(biāo)的類型 再強制轉(zhuǎn)化為目標(biāo)寄存器的類型,最終轉(zhuǎn)化為strDestReg=strSrclReg*strSrc2Reg的形 式。
[0100] 對于m44操作:就是實現(xiàn)源寄存器1和源寄存器2的矩陣連乘4*4操作,直接將目 標(biāo)結(jié)果賦給目標(biāo)寄存器,需要將源寄存器1強制轉(zhuǎn)換為vec4類型,并在轉(zhuǎn)化過程中將源寄 存器2所代表的由連續(xù)的4個寄存器所組成的mat4型數(shù)據(jù)的標(biāo)識符設(shè)置為類似vcMatO的 類型,同時,如果目標(biāo)寄存器的類型不是vec4類型,則需將結(jié)果目標(biāo)的類型再強制轉(zhuǎn)化為 目標(biāo)寄存器的類型,最終轉(zhuǎn)化為strDestReg=strSrclReg*strSrc2Reg的形式。
[0101] 對于m34操作:就是實現(xiàn)源寄存器1和源寄存器2的矩陣連乘3*4操作,僅生成一 個3組件結(jié)果,目標(biāo)必須遮罩為.xyz,需要將源寄存器1強制轉(zhuǎn)換為vec4類型,并在轉(zhuǎn)化 過程中將源寄存器2所代表的由連續(xù)的3個寄存器所組成的mat3型數(shù)據(jù)的標(biāo)識符設(shè)置為 類似vcMatO的類型,同時,如果目標(biāo)寄存器的類型不是vec3類型,則需將結(jié)果目標(biāo)的類型 再強制轉(zhuǎn)化為目標(biāo)寄存器的類型,最終轉(zhuǎn)化為strDestReg=strSrclReg*strSrc2Reg的形 式。
[0102] 對于tex操作:就是實現(xiàn)從紋理source2上將坐標(biāo)sourcel上的內(nèi)容加載到目 標(biāo)寄存器的功能,此操作僅適用于片段著色器,源寄存器2必須采用取樣器格式,返回值是 vec4類型,需要將源寄存器1強制轉(zhuǎn)換為vec2類型,還需要根據(jù)目標(biāo)樣本中的維度D項來 判斷是使用2D格式還是Cube格式:當(dāng)維度D為0時轉(zhuǎn)化為strDestReg=texture2D(str SrclReg,strSrc2Reg);當(dāng)維度D為 1 時轉(zhuǎn)化為strDestReg=textureCube(strSrclReg,s trSrc2Reg)的形式。
[0103] 其他的操作,例如:add,sub,mul,div,rcp,min,max,frc,sqt,pow,log,exp,nrm, sin,cos,abs,neg,sat,kil,sge,slt,seg等,只需按照相應(yīng)的功能進行轉(zhuǎn)化,無需特殊處 理,如果出現(xiàn)類型不匹配的情況可以進行強制類型轉(zhuǎn)化。
[0104] 需要說明的是,本實施例提供的方法在S240之前,即頂點著色程序的轉(zhuǎn)換過程中 還包括,存儲頂點著色程序轉(zhuǎn)換過程中使用的varying變量;相應(yīng)地,在具體實現(xiàn)時,對片 段著色程序的轉(zhuǎn)化也可以概括為全局變量的轉(zhuǎn)化、局部變量的轉(zhuǎn)化和具體操作時的轉(zhuǎn)化, 即本實施例中的S240可以包括:S241,將著色類型為片段著色器的寄存器轉(zhuǎn)和已存儲的 varying變量轉(zhuǎn)化為GLSL的片段著色程序?qū)?yīng)的全局變量;S242,根據(jù)片段著色語句指示 的操作推導(dǎo)該片段著色語句的寄存器信息,并將該寄存器類型為臨時寄存器中的臨時變量 轉(zhuǎn)化為GLSL的片段著色程序?qū)?yīng)的局部變量;S243,將該片段著色語句的操作轉(zhuǎn)換為GLSL 中片段著色程序?qū)?yīng)的操作。
[0105] 在本實施例中,片段著色程序轉(zhuǎn)化中的全局變量的轉(zhuǎn)化、局部變量的轉(zhuǎn)化和具體 操作時的轉(zhuǎn)化,其轉(zhuǎn)換的基本方式與頂點著色程序轉(zhuǎn)化的方式類似,故在此不再贅述;需要 說明的是,該片段著色程序在進行全局變量的轉(zhuǎn)化時,需要使用上述頂點著色程序中存儲 的varying變量。
[0106] 本實施例所提供的圖形處理方法,通過讀取的AGAL的程序代碼對其進行轉(zhuǎn)化處 理,具體基于AGAL程序代碼中的數(shù)據(jù)信息和指令碼所指示的操作與GLSL程序代碼中的變 量和操作的對應(yīng)關(guān)系將該AGAL的程序代碼轉(zhuǎn)化為可以通過GPU執(zhí)行的基于OpenGL使用的 GLSL的程序代碼,在程序的轉(zhuǎn)化過程中,具體可以先根據(jù)AGAL的程序代碼獲取對應(yīng)的寄存 器信息,進而根據(jù)寄存器的著色類型按照頂點著色程序和片段著色程序的順序進行轉(zhuǎn)化, 使得該轉(zhuǎn)化后的程序可以通過GPU來執(zhí)行,實現(xiàn)了將AGAL轉(zhuǎn)化為可以通過GPU執(zhí)行的著色 語言,解決了現(xiàn)有技術(shù)中的圖形處理方法,通過GHJ進行三維渲染無法直接執(zhí)行AGAL語言, 而導(dǎo)致基于Stage3D技術(shù)的AGAL的實用性低的問題,節(jié)省了CPU的資源,相應(yīng)地提高了 Stage3D技術(shù)使用的靈活性。另外,本實施例提供的圖形處理方法,在著色程序的轉(zhuǎn)化過程 中,通過全局變量、局部變量和具體操作的轉(zhuǎn)化將AGAL轉(zhuǎn)化為OpenGL使用的GLSL,提供了 將AGAL用于Stage3D技術(shù)的具體方式,進一步地提高了Stage3D技術(shù)的實用性。
[0107] 實施例四
[0108] 圖4為本發(fā)明實施例四所提供的一種圖形處理裝置的結(jié)構(gòu)示意圖。如圖4所示, 本實施例提供的圖形處理裝置,具體包括:讀取模塊11,轉(zhuǎn)化模塊12和執(zhí)行模塊13。
[0109] 其中,讀取模塊11,用于讀取AGAL的程序代碼,該程序代碼包括該AGAL的數(shù)據(jù)信 息和指令碼。
[0110] 轉(zhuǎn)化模塊12,用于根據(jù)該AGAL與著色語言GLSL的對應(yīng)關(guān)系,將該AGAL的程序代 碼轉(zhuǎn)化為用于OpenGL的GLSL的程序代碼,其中,該對應(yīng)關(guān)系包括AGAL中數(shù)據(jù)信息和指令 碼所指示的操作與GLSL中程序代碼的變量和操作的對應(yīng)關(guān)系。
[0111] 執(zhí)行模塊13,用于通過GPU執(zhí)行該GLSL的程序代碼。
[0112] 本發(fā)明實施例提供的圖形處理裝置用于執(zhí)行本發(fā)明實施例一提供的圖形處理方 法,具備相應(yīng)的功能模塊,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0113] 實施例五
[0114] 圖5為本發(fā)明實施例五所提供的一種圖形處理裝置的結(jié)構(gòu)示意圖。如圖5所示, 本實施例提供的圖形處理裝置在圖4所示裝置結(jié)構(gòu)的基礎(chǔ)上,其中,指令碼包括頂點著色 語句和片段著色語句;轉(zhuǎn)化模塊12可以包括:獲取單元14,用于根據(jù)讀取模塊11讀取的 AGAL的數(shù)據(jù)信息獲取對應(yīng)的寄存器信息,寄存器信息包括寄存器類型、索引,以及寄存器的 著色類型;頂點著色轉(zhuǎn)化單元15,用于根據(jù)該獲取單元14獲取的寄存器信息,對頂點著色 語句進行頂點著色程序轉(zhuǎn)化;片段著色轉(zhuǎn)化單元16,用于根據(jù)該獲取單元14獲取的寄存器 信息和頂點著色轉(zhuǎn)化單元15對頂點著色程序轉(zhuǎn)化的結(jié)果,對片段著色語句進行片段著色 程序轉(zhuǎn)化。
[0115] 本發(fā)明實施例提供的圖形處理裝置用于執(zhí)行本發(fā)明實施例二提供的圖形處理方 法,具備相應(yīng)的功能模塊,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0116] 進一步地,本實施例提供的圖形處理裝置中,獲取單元14獲取的寄存器的著色類 型可以包括頂點著色器;則頂點著色轉(zhuǎn)化單元15具體包括:第一全局變量轉(zhuǎn)化子單元,用 于將著色類型為頂點著色器的寄存器和頂點著色語句中的可變性變量轉(zhuǎn)化為GLSL的頂點 著色程序?qū)?yīng)的全局變量;第一局部變量轉(zhuǎn)化子單元,用于根據(jù)頂點著色語句所指示的操 作推導(dǎo)該頂點著色語句的寄存器信息,從而將該寄存器類型為臨時寄存器中的臨時變量轉(zhuǎn) 化為GLSL的頂點著色程序?qū)?yīng)的局部變量;第一操作轉(zhuǎn)化子單元,用于將該頂點著色語句 的操作轉(zhuǎn)換為GLSL中頂點著色程序?qū)?yīng)的操作。在具體實現(xiàn)中,局部變量包括該局部變 量的類型和標(biāo)識符;則第一局部變量轉(zhuǎn)化子單元,用于將所述寄存器類型為臨時寄存器中 的臨時變量轉(zhuǎn)化為所述GLSL的頂點著色程序?qū)?yīng)的局部變量,具體包括:根據(jù)頂點著色語 句所指示的操作,推導(dǎo)臨時寄存器中的臨時變量轉(zhuǎn)化為GLSL的頂點著色程序?qū)?yīng)的局部 變量的類型;并將該局部變量對應(yīng)的頂點著色語句的寄存器名稱定義為該局部變量的標(biāo)識 符。
[0117] 需要說明的是,對于GLSL的頂點著色程序中全局變量的轉(zhuǎn)換,該全局變量包括著 色類型為頂點著色器的寄存器和頂點著色語句中的可變性變量;具體地,本實施在進行頂 點著色程序的轉(zhuǎn)化過程中,可以存儲該頂點著色程序轉(zhuǎn)換過程中使用的varying變量,即 用于GLSL程序代碼的varying變量,由于varying變量是頂點著色器和片段著色器之間 做數(shù)據(jù)傳遞用的,一般頂點著色器修改varying變量的值,然后片段著色器使用該varying 變量的值,因此必須保證varying變量在頂點著色器和片段著色器之間的聲明必須是一致 的,即此著色程序的轉(zhuǎn)化過程為先進行頂點著色程序的轉(zhuǎn)化后,再進行片段著色程序的轉(zhuǎn) 化,并且該varying變量是全局變量,所以在進行頂點著色程序轉(zhuǎn)化時,可以將所有轉(zhuǎn)化過 程中使用的varying變量進行存儲以便用于片段著色程序的轉(zhuǎn)化。
[0118] 更進一步地,本實施例提供的圖形處理裝置中,獲取單元14獲取
當(dāng)前第4頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1