專利名稱:部分圖像旋轉(zhuǎn)裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖像旋轉(zhuǎn)裝置及方法,更具體地,涉及一種只需將畫面之中部分發(fā)生旋轉(zhuǎn)變化的物體進(jìn)行旋轉(zhuǎn)的裝置及方法,而不需要將全部畫面重新進(jìn)行繪制的部分圖像旋轉(zhuǎn)裝置及方法。
背景技術(shù):
在電腦繪圖領(lǐng)域中,隨著不同的顯示周邊與形態(tài),多樣化的應(yīng)用也相繼地開發(fā)給使用者進(jìn)行使用。舉例來說,基于筆記型電腦的顯示器的限制,為了提供使用者可以于不同位置與角度觀看屏幕數(shù)據(jù),而不需移動筆記型電腦(顯示器),圖像旋轉(zhuǎn)(Image Rotation)的系統(tǒng)與功能因此而產(chǎn)生。
圖1a與圖1b是分別顯示相應(yīng)顯示器與幀緩存器(Frame Buffer)的圖像旋轉(zhuǎn)的示意圖。如圖1a所示,顯示器中的畫面100經(jīng)過旋轉(zhuǎn)-90度后變成畫面101。而對應(yīng)于顯示器的畫面,電腦系統(tǒng)的幀緩存器中儲存的畫面數(shù)據(jù)則如圖1b所示。如圖所示,顯示器中的畫面100相應(yīng)于幀緩存器110中儲存的畫面數(shù)據(jù)111,而顯示器中的畫面101相應(yīng)于幀緩存器110中儲存的畫面數(shù)據(jù)112。
對于現(xiàn)行的圖像旋轉(zhuǎn)方法,無論是硬件繪圖(Hardware Rendering)或是軟件繪圖(Software Rendering),都是將新接收的數(shù)據(jù)繪制為新的畫面后,再將整個畫面全部重新進(jìn)行繪圖。在現(xiàn)有方法中,由于整個畫面中包含了大量的數(shù)據(jù),當(dāng)全部進(jìn)行旋轉(zhuǎn)時,將會耗費(fèi)大量的系統(tǒng)資源與時間。然而,對于實(shí)際情況而言,系統(tǒng)所繪制的每一個畫面之間僅存在極小的改變,舉例來說,一個物體的移動,或增加一個新的物體等等,因此,現(xiàn)有的圖像旋轉(zhuǎn)方法是非常低效的。
發(fā)明內(nèi)容
因此,本發(fā)明的主要目的為提供一種只需將畫面中發(fā)生旋轉(zhuǎn)變化的物體進(jìn)行旋轉(zhuǎn),而不需將全部畫面重新繪制的部分圖像旋轉(zhuǎn)裝置及方法。
為了實(shí)現(xiàn)上述目的,可藉由本發(fā)明所提供的一種部分圖像旋轉(zhuǎn)裝置及方法來完成。
依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)裝置包括第一緩存存儲器、幀緩存器(Frame Buffer)、繪圖模塊(Rendering Module)、與旋轉(zhuǎn)模塊(RotationModule)。幀緩存器中儲存相應(yīng)一第一虛擬畫面的第一旋轉(zhuǎn)畫面。繪圖模塊依據(jù)接收的第二虛擬畫面信息繪制相應(yīng)的第二虛擬畫面,且將第二虛擬畫面儲存于第一緩存存儲器中。旋轉(zhuǎn)模塊依據(jù)第一虛擬畫面與第二虛擬畫面決定第二虛擬畫面中的變化物體(Rotation Object),并將變化物體旋轉(zhuǎn)為一旋轉(zhuǎn)物體,且將幀緩存器的第一旋轉(zhuǎn)畫面中相應(yīng)第二虛擬畫面中變化物體位置的部分圖像以旋轉(zhuǎn)物體取代。
此外,部分圖像旋轉(zhuǎn)裝置還包括一顯示裝置,來抓取幀緩存器中的第一旋轉(zhuǎn)畫面,并將第一旋轉(zhuǎn)畫面進(jìn)行顯示。其中,第一緩存存儲器可以是系統(tǒng)存儲器(System Memory),在此情況中,繪圖模塊與旋轉(zhuǎn)模塊由軟件實(shí)施而成,且繪圖模塊與旋轉(zhuǎn)模塊通過中央處理單元(CPU)進(jìn)行運(yùn)算。
另外,第一緩存存儲器可以位于幀緩存器中,在此情況中,繪圖模塊與旋轉(zhuǎn)模塊由硬件實(shí)施而成,且繪圖模塊與旋轉(zhuǎn)模塊通過繪圖加速器(Graphics Accelerator)進(jìn)行運(yùn)算。
依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)方法,首先,接收一第二虛擬畫面信息,之后,依據(jù)第二虛擬畫面信息繪制相應(yīng)的第二虛擬畫面。接著,依據(jù)一第一虛擬畫面與第二虛擬畫面決定第二虛擬畫面中發(fā)生改變的變化(旋轉(zhuǎn))物體,并將變化(旋轉(zhuǎn))物體旋轉(zhuǎn)為一旋轉(zhuǎn)物體。最后,將相應(yīng)第一虛擬畫面的一第一旋轉(zhuǎn)畫面中相應(yīng)第二虛擬畫面中變化物體位置的部分圖像以旋轉(zhuǎn)物體取代。
此外,依據(jù)本發(fā)明實(shí)施例還將第一旋轉(zhuǎn)畫面儲存于一幀緩存器中,且還將幀緩存器中的第一旋轉(zhuǎn)畫面進(jìn)行顯示。
依據(jù)本發(fā)明實(shí)施例還可將第二虛擬畫面儲存于系統(tǒng)存儲器中,在此情況中,繪制第二虛擬畫面與將變化物體旋轉(zhuǎn)為旋轉(zhuǎn)物體通過中央處理單元進(jìn)行運(yùn)算。另外,還將第二虛擬畫面儲存于幀緩存器中,在此情況中,繪制第二虛擬畫面與將變化物體旋轉(zhuǎn)為旋轉(zhuǎn)物體通過繪圖加速器進(jìn)行運(yùn)算。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉一實(shí)施例,并配合附圖,作詳細(xì)說明如下,圖中圖1a與圖1b是分別顯示一現(xiàn)有技術(shù)的例子,其相應(yīng)顯示器與幀緩存器的圖像旋轉(zhuǎn)示意圖;圖2為一依據(jù)本發(fā)明第一實(shí)施例的部分圖像旋轉(zhuǎn)裝置的系統(tǒng)結(jié)構(gòu)示意圖;圖3為一依據(jù)本發(fā)明第二實(shí)施例的部分圖像旋轉(zhuǎn)裝置的系統(tǒng)結(jié)構(gòu)示意圖;圖4a是顯示第二實(shí)施例中2D紋理旋轉(zhuǎn)180度,并紋理作圖(TextureMapping)為3D紋理的示意圖;圖4b是顯示第二實(shí)施例中2D紋理旋轉(zhuǎn)90度,并紋理作圖為3D紋理的示意圖;圖5為一依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)方法的操作流程圖;圖6為一依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)例子的示意圖;圖7為一依據(jù)現(xiàn)有技術(shù)來做紋理映射的例子的示意圖;圖8為另一依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)例子的示意圖;以及圖9為一依據(jù)本發(fā)明實(shí)施例來繪制(Render)圖像的動作示意圖。
附圖中的附圖標(biāo)記說明如下100、101~顯示器畫面;110、310~幀緩存器(Frame Buffer);111、112~畫面圖像數(shù)據(jù);200~第一緩存存儲器;210~繪圖模塊(Rendering Means);220~旋轉(zhuǎn)模塊(Rendering Means);224、304~旋轉(zhuǎn)物體確定裝置(Rotation ObjectDetermining Means);230~幀緩存器(Frame Buffer);240、320~顯示裝置(Display);300~3D引擎(3D Engine);301~繪圖模塊(Rendering Means);302~旋轉(zhuǎn)模塊(Rotation Means);303~紋理作圖模塊(Texture Mapping Means);311~第一存儲器區(qū)域;304~旋轉(zhuǎn)物體確定裝置;312~第二存儲器區(qū)域;S500、S510、…、S550~操作步驟;600、630~第一旋轉(zhuǎn)畫面;610、650~第一虛擬畫面;620、660~第二虛擬畫面。630、830~確定到的變化物體;640、840~將會變化的物體予以旋轉(zhuǎn)后的物體;810、850~第一虛擬畫面;820、860~第二虛擬畫面(屏幕經(jīng)旋轉(zhuǎn)180度,但肉眼所見的顯示畫面仍未旋轉(zhuǎn));880~將850旋轉(zhuǎn)180度;890~將880輸出至顯示裝置。
具體實(shí)施例方式
圖2顯示依據(jù)本發(fā)明第一實(shí)施例的部分圖像旋轉(zhuǎn)裝置的系統(tǒng)結(jié)構(gòu)。依據(jù)本發(fā)明第一實(shí)施例的部分圖像旋轉(zhuǎn)裝置包括一第一緩存存儲器200、一幀緩存器230、一繪圖模塊210、一旋轉(zhuǎn)模塊220、一旋轉(zhuǎn)物體確定裝置(RotationObject Determining Means)224、與一顯示裝置240。其中,繪圖模塊210、旋轉(zhuǎn)模塊220、與旋轉(zhuǎn)物體確定裝置224可以組成繪圖處理器(GraphicProcessor Unit,GPU)。
幀緩存器230可以是DIMM(Dual In-line Memory Module)或繪圖卡上的存儲器,其中儲存最終屏幕可以見到的畫面,如經(jīng)過旋轉(zhuǎn)的畫面。顯示裝置240便可抓取(Refresh)幀緩存器230中儲存的畫面,并將畫面進(jìn)行顯示。繪圖模塊210可以接收由應(yīng)用程序所傳送的畫面信息,并依據(jù)接收的畫面信息來繪制畫面。當(dāng)繪圖模塊210繪制完成畫面后,便會將畫面儲存至第一緩存存儲器200。
旋轉(zhuǎn)模塊220會依據(jù)繪圖模塊210繪制完成的畫面與前一畫面,利用旋轉(zhuǎn)物體確定裝置(Rotation Object Determining Means)224來判斷兩畫面之間是否有改變的變化物體,并由第一緩存存儲器200所儲存的畫面中讀取此變化物體。需注意的是,前一畫面的相關(guān)信息可以事先緩存于旋轉(zhuǎn)模塊220中,且此前一畫面旋轉(zhuǎn)過后即為幀緩存器230中儲存的畫面。
之后,旋轉(zhuǎn)模塊220將變化物體依據(jù)旋轉(zhuǎn)需求旋轉(zhuǎn)為一旋轉(zhuǎn)物體,且將幀緩存器230的畫面中相應(yīng)繪圖模塊210繪制完成的畫面中變化物體位置的部分圖像以旋轉(zhuǎn)物體取代。此時,幀緩存器230中更新過后的畫面便可被顯示裝置240抓取與顯示。其中,旋轉(zhuǎn)需求可以是內(nèi)定或是提供功能(Function)給使用者來設(shè)定或選定。
值得注意的是,在第一實(shí)施例中,繪圖模塊210與旋轉(zhuǎn)模塊220可以由軟件實(shí)施而成,即系軟件繪圖。此時,繪圖模塊210與旋轉(zhuǎn)模塊220通過中央處理單元進(jìn)行運(yùn)算。此外,當(dāng)繪圖模塊210與旋轉(zhuǎn)模塊220以軟件實(shí)施而成時,第一緩存存儲器200可以是電腦系統(tǒng)中的系統(tǒng)存儲器。
圖3為一依據(jù)本發(fā)明第二實(shí)施例的部分圖像旋轉(zhuǎn)裝置的系統(tǒng)結(jié)構(gòu)的示意圖。依據(jù)本發(fā)明第二實(shí)施例的部分圖像旋轉(zhuǎn)裝置包括一3D引擎(3DEngine)300、一幀緩存器310、與一顯示裝置320。
幀緩存器310包括一第一存儲器區(qū)域311與一第二存儲器區(qū)域312。第二存儲器區(qū)域312中儲存最終屏幕可以見到的畫面的圖像數(shù)據(jù),如經(jīng)過旋轉(zhuǎn)的畫面,顯示裝置320便可抓取第二存儲器區(qū)域312中所儲存的畫面,并將畫面進(jìn)行顯示。
3D引擎300中包括一繪圖模塊(Rendering Means)301、一旋轉(zhuǎn)模塊(Rotation Module)302、一紋理作圖模塊(Texture Mapping Module)303、與一旋轉(zhuǎn)物體確定裝置(Rotation Object Determining Means)304。其中,繪圖模塊301用以接收由應(yīng)用程序所傳送來的畫面信息,并依據(jù)接收到的畫面信息來繪制畫面。舉例來說,由于3D圖形是以三角形(Triangle)為單位所形成,因此,繪圖模塊301接收構(gòu)成3D畫面的頂點(diǎn)(Vertex)信息,而繪制相應(yīng)的三角形。當(dāng)繪圖模塊301繪制完成畫面后,便會將畫面儲存至第一存儲器區(qū)域311中。
旋轉(zhuǎn)模塊302會依據(jù)繪圖模塊301繪制完成的畫面與前一畫面,利用旋轉(zhuǎn)物體確定裝置(Rotation Object Determining Means)304來判斷兩畫面之間是否有改變的變化物體,并由第一存儲器區(qū)域311所儲存的畫面中讀取此變化物體。需注意的是,前一畫面的相關(guān)信息可以事先緩存于旋轉(zhuǎn)模塊302中,且此前一畫面旋轉(zhuǎn)過后即為第二存儲器區(qū)域312中儲存的畫面。
之后,旋轉(zhuǎn)模塊220將變化物體依據(jù)旋轉(zhuǎn)需求旋轉(zhuǎn)為一旋轉(zhuǎn)物體,且紋理作圖模塊303依據(jù)旋轉(zhuǎn)需求將紋理(Texture)由2D旋轉(zhuǎn)對映為3D后再作圖(Mapping)至此旋轉(zhuǎn)物體上。注意的是,現(xiàn)有技術(shù)來做紋理映射的例子可以參見圖7。
圖4a是顯示第二實(shí)施例中2D的紋理轉(zhuǎn)換為3D的紋理旋轉(zhuǎn)180度的簡單示意圖。如圖所示,斜線部分的三角形為原有的圖像,紋理作圖模塊303可以使用兩個三角形(三角形ABC與三角形ACD)來形成一矩形,從而達(dá)到旋轉(zhuǎn)原有圖像的目的。其中,對于每一頂點(diǎn),2D圖形轉(zhuǎn)換為3D圖形的紋理旋轉(zhuǎn)對應(yīng)關(guān)系如下A′點(diǎn)坐標(biāo)由(x0,y0)轉(zhuǎn)換為(0,0,0);B′點(diǎn)坐標(biāo)由(0,y0)轉(zhuǎn)換為(x0,0,0);C′點(diǎn)坐標(biāo)由(0,0)轉(zhuǎn)換為(x0,y0,0);D′點(diǎn)坐標(biāo)由(x0,0)轉(zhuǎn)換為(0,y0,0)。其中,x0,y0為原三角形的頂點(diǎn)坐標(biāo)。
簡而言之,本發(fā)明應(yīng)用于3D引擎時的做法如下(a)利用旋轉(zhuǎn)物體確定裝置(Rotation Object Detecting Means)確定出旋轉(zhuǎn)物體的外形、位置及旋轉(zhuǎn)角度。
(b)將對應(yīng)于該旋轉(zhuǎn)物體的多個原始三角形的頂點(diǎn)作旋轉(zhuǎn)。如圖4a所示為物體旋轉(zhuǎn)180度的場合,其中原始的兩個三角形(ΔA′B′C′、ΔC′D′A′)的三個頂點(diǎn)分別為A′(x0,y0)、B′(0,y0)、C′(0,0)以及C′(0,0)、D′(x0,0)、A′(x0,y0),其中A′點(diǎn)的坐標(biāo)由二維坐標(biāo)A′(x0,y0)轉(zhuǎn)換為三維坐標(biāo)A(0,0,0);依此類推,B′點(diǎn)坐標(biāo)由二維坐標(biāo)B′(0,1)轉(zhuǎn)換為三維坐標(biāo)B(x0,0,0);C′點(diǎn)坐標(biāo)由二維坐標(biāo)C′(0,0)轉(zhuǎn)換為三維坐標(biāo)C(x0,y0,0);D′點(diǎn)坐標(biāo)由二維坐標(biāo)D′(1,0)轉(zhuǎn)換為三維坐標(biāo)D(0,y0,0)。
(c)將對應(yīng)于該三角形的原始紋理圖樣做紋理(texture)的動作。此時的圖樣再紋理時會同時做圖樣旋轉(zhuǎn)的動作,其結(jié)果如圖4a(3D)圖所示。
圖4b是顯示第二實(shí)施例中2D轉(zhuǎn)換為3D的紋理旋轉(zhuǎn)90度的示意圖。如圖所示,斜線部分的三角形為原有的圖像,紋理作圖模塊303可以使用兩個三角形(三角形E′F′H′與三角形F′G′H′)來形成一矩形,從而達(dá)到旋轉(zhuǎn)原有圖像的目的。其中,對于每一頂點(diǎn),2D圖形轉(zhuǎn)換為3D圖形的紋理旋轉(zhuǎn)對應(yīng)關(guān)系如下E′點(diǎn)坐標(biāo)由二維坐標(biāo)E′(x1,0)轉(zhuǎn)換為三維坐標(biāo)E(0,0,0);F′點(diǎn)坐標(biāo)由二維坐標(biāo)F′(x1,y1)轉(zhuǎn)換為三維坐標(biāo)F(x1,0,0);G′點(diǎn)坐標(biāo)由二維坐標(biāo)G′(0,y1)轉(zhuǎn)換為三維坐標(biāo)G(x1,y1,0);H′點(diǎn)坐標(biāo)由二維坐標(biāo)H′(0,0)轉(zhuǎn)換為三維坐標(biāo)H(0,y1,0)。
當(dāng)紋理完成后,3D引擎300將第二存儲器區(qū)域312的畫面中相應(yīng)繪圖模塊301繪制完成的畫面中變化物體位置的部分圖像以紋理后的旋轉(zhuǎn)物體取代。此時,第二存儲器區(qū)域312中更新過后的畫面便可被顯示裝置320抓取與顯示。其中,旋轉(zhuǎn)需求可以是內(nèi)定或是提供功能(Function)給使用者來設(shè)定或選定。
值得注意的是,在第二實(shí)施例中,繪圖模塊301、旋轉(zhuǎn)模塊302、紋理作圖模塊303與旋轉(zhuǎn)物體確定裝置(Rotation Object Detecting Means)304包含于3D引擎300中,因此,第二實(shí)施例通過繪圖裝置,如繪圖加速器進(jìn)行繪制運(yùn)算而成。
圖5是依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)方法的操作流程。注意的是,繪圖模塊接收由應(yīng)用程序傳送的原始畫面信息以第一虛擬畫面稱呼,而當(dāng)下一畫面有部分物體產(chǎn)生旋轉(zhuǎn)時,旋轉(zhuǎn)物體確定裝置304可確定出來,該下一畫面以第二虛擬畫面稱之,而經(jīng)過旋轉(zhuǎn)的畫面則以第一旋轉(zhuǎn)畫面稱之。
首先,如步驟S500,接收第二虛擬畫面信息,之后,如步驟S510,依據(jù)接收的第二虛擬畫面信息,并將第二虛擬畫面進(jìn)行儲存。
接著,如步驟S520,旋轉(zhuǎn)物體確定裝置304依據(jù)事先緩存的第一虛擬畫面與第二虛擬畫面,可以確定出第二虛擬畫面中發(fā)生改變的旋轉(zhuǎn)變化物體,之后,如步驟S530,將第一虛擬畫面中的變化物體依據(jù)旋轉(zhuǎn)量將其圖樣數(shù)據(jù)旋轉(zhuǎn)一對應(yīng)的角度而成為一旋轉(zhuǎn)物體。相同地,旋轉(zhuǎn)需求可以是內(nèi)定或是提供功能給使用者來設(shè)定或選定。
之后,如步驟S540,將相應(yīng)第一虛擬畫面的第一旋轉(zhuǎn)畫面中相應(yīng)第二虛擬畫面中變化物體位置的將旋轉(zhuǎn)變化物體以旋轉(zhuǎn)物體取代。最后,如步驟S550,更新過后的第一旋轉(zhuǎn)畫面可以被顯示裝置抓取與顯示。
注意的是,當(dāng)通過3D引擎繪制圖像時,在取代第一旋轉(zhuǎn)畫面中相應(yīng)第二虛擬畫面中變化物體位置的部分圖像前,還包括將一紋理依據(jù)旋轉(zhuǎn)需求進(jìn)行旋轉(zhuǎn),并將旋轉(zhuǎn)過后的紋理作圖至旋轉(zhuǎn)物體上。之后,才將紋理作圖后的旋轉(zhuǎn)物體取代第一旋轉(zhuǎn)畫面中相應(yīng)第二虛擬畫面中變化物體位置的部分圖像。此外,當(dāng)顯示器旋轉(zhuǎn)一旋轉(zhuǎn)角度時,變化物體可以被依據(jù)顯示器的旋轉(zhuǎn)角度旋轉(zhuǎn)成為旋轉(zhuǎn)物體。
相同地,本發(fā)明實(shí)施例可以軟件或是硬件實(shí)施,當(dāng)軟件繪圖時,繪制第二虛擬畫面與將變化物體旋轉(zhuǎn)為旋轉(zhuǎn)物體是通過中央處理單元進(jìn)行運(yùn)算。另外,當(dāng)硬件繪圖時,繪制第二虛擬畫面與將變化物體旋轉(zhuǎn)為旋轉(zhuǎn)物體是通過3D引擎,如繪圖加速器進(jìn)行運(yùn)算,此時,第一緩存存儲器200在幀緩存器(Frame Buffer)230中。
圖6是依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)的示意圖,圖中顯示本發(fā)明在不同的時間點(diǎn)的運(yùn)算及處理。其中,在時間點(diǎn)t1,本發(fā)明的系統(tǒng)中儲存有一第一虛擬畫面610、一對應(yīng)于下一時間點(diǎn)要顯示的一第二虛擬畫面620、與相應(yīng)于第一虛擬畫面610及第二虛擬畫面620中的一變化畫面(物體)630及一第一旋轉(zhuǎn)(變化)畫面840。此時,第一虛擬畫面610,第二虛擬畫面620可儲存于旋轉(zhuǎn)模塊220,第一緩存存儲器200或者,儲存于幀緩存器230中。其中,本實(shí)施例的旋轉(zhuǎn)角度為180度。
在時間點(diǎn)t1+ta,旋轉(zhuǎn)模塊220比對第一虛擬畫面610與第二虛擬畫面620后,會發(fā)現(xiàn)兩畫面中發(fā)生改變的變化物體“A′”。
在時間點(diǎn)t1+tb,旋轉(zhuǎn)模塊220會將第一虛擬畫面610的變化物體,亦即變化畫面(物體)630,進(jìn)行旋轉(zhuǎn)而成為變化物體“A′”,或者稱為第一旋轉(zhuǎn)(變化)畫面840。
最后,于時間點(diǎn)t1+Δt,將旋轉(zhuǎn)后的物體取代第一旋轉(zhuǎn)畫面中的原始變化畫面(物體)630的部分畫面,還形成更新后的第一虛擬畫面650。此時顯示器240將會顯示下一時間點(diǎn)的圖像畫面。
圖8為另一依據(jù)本發(fā)明實(shí)施例的部分圖像旋轉(zhuǎn)例子的示意圖,圖中顯示本發(fā)明于不同的時間點(diǎn)的運(yùn)算及處理。圖8與圖6的例子相比較,特別之處在于本例是應(yīng)用于當(dāng)顯示器旋轉(zhuǎn)一角度后(本例以旋轉(zhuǎn)180度為例),肉眼所見的圖像畫面仍然沒有旋轉(zhuǎn)的情形。
其中,于時間點(diǎn)t2時,本發(fā)明的系統(tǒng)中儲存有一第一虛擬畫面810、一對應(yīng)于顯示器旋轉(zhuǎn)一預(yù)定角度、下一時間點(diǎn)要顯示的一第二虛擬畫面820、與相應(yīng)于第一虛擬畫面810及第二虛擬畫面820中的一變化畫面(物體)830及一第一旋轉(zhuǎn)(變化)畫面840。
于時間點(diǎn)t2+tc,旋轉(zhuǎn)模塊220比對第一虛擬畫面610與第二虛擬畫面620后,會發(fā)現(xiàn)兩畫面中發(fā)生改變的變化物體“A′”。
于時間點(diǎn)t1+td,旋轉(zhuǎn)模塊220會將第一虛擬畫面810的變化物體,亦即變化畫面(物體)830,進(jìn)行旋轉(zhuǎn)而成為變化物體“A′”,或者稱為第一旋轉(zhuǎn)(變化)畫面840。
最后,于時間點(diǎn)t2+Δt,將旋轉(zhuǎn)后的物體取代第一旋轉(zhuǎn)畫面中的原始變化畫面(物體)830的部分畫面,更形成更新后的第一虛擬畫面850。此時被旋轉(zhuǎn)180度的顯示器140將會顯示下一時間點(diǎn)的圖像畫面。而其圖像繪制到顯示器的動作如圖9所示,即先將第一虛擬畫面850旋轉(zhuǎn)180度后成為第二虛擬畫面860(屏幕經(jīng)旋轉(zhuǎn)180度,但肉眼所見的顯示畫面仍未旋轉(zhuǎn)),再將第二虛擬畫面860輸出至顯示裝置870中。
因此,藉由本發(fā)明所提出的部分圖像旋轉(zhuǎn)裝置及方法可以只需將畫面中發(fā)生旋轉(zhuǎn)改變的該原始物體進(jìn)行旋轉(zhuǎn),并取代位于幀緩存器(FrameBuffer)230中的該原始物體即可,而不需將全部畫面重新進(jìn)行圖像處理,從而大量節(jié)省系統(tǒng)資源與縮小整體繪圖的反應(yīng)時間。此外,由于本發(fā)明亦可以硬件,如繪圖加速器、繪圖卡上實(shí)施,因此,通過直接存取幀緩存器中的畫面,可以大幅縮短存取系統(tǒng)存儲器所耗費(fèi)的時間。
雖然本發(fā)明已以優(yōu)選實(shí)施例公開如上,但是其并非用以限定本發(fā)明,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍的情況下,可做些許更動與潤飾,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以所附的權(quán)利要求所確定的為準(zhǔn)。
權(quán)利要求
1.一種部分圖像旋轉(zhuǎn)裝置,包括一第一緩存存儲器;一幀緩存器,儲存相應(yīng)一第一虛擬畫面的一第一旋轉(zhuǎn)畫面;一繪圖模塊,接收一第二虛擬畫面信息,且依據(jù)該第二虛擬畫面信息繪制相應(yīng)該第二虛擬畫面信息的一第二虛擬畫面,且將該第二虛擬畫面儲存于該第一緩存存儲器中;一旋轉(zhuǎn)物體確定裝置,依據(jù)該第一虛擬畫面與該第二虛擬畫面確定該第二虛擬畫面中的一變化物體;以及一旋轉(zhuǎn)模塊,將該變化物體旋轉(zhuǎn)為一旋轉(zhuǎn)物體,且將該幀緩存器的該第一旋轉(zhuǎn)畫面中相應(yīng)該第二虛擬畫面中變化物體位置的部分圖像以該旋轉(zhuǎn)物體取代。
2.如權(quán)利要求1所述的部分圖像旋轉(zhuǎn)裝置,還包括一顯示裝置,抓取該幀緩存器中的該第一旋轉(zhuǎn)畫面,并將該第一旋轉(zhuǎn)畫面進(jìn)行顯示。
3.如權(quán)利要求1所述的部分圖像旋轉(zhuǎn)裝置,其中該第一緩存存儲器為系統(tǒng)存儲器。
4.如權(quán)利要求3所述的部分圖像旋轉(zhuǎn)裝置,其中該繪圖模塊與該旋轉(zhuǎn)模塊由軟件實(shí)施而成,且該繪圖模塊與該旋轉(zhuǎn)模塊通過中央處理單元進(jìn)行運(yùn)算。
5.如權(quán)利要求1所述的部分圖像旋轉(zhuǎn)裝置,其中該第一緩存存儲器位于該幀緩存器中。
6.如權(quán)利要求5所述的部分圖像旋轉(zhuǎn)裝置,其中該繪圖模塊與該旋轉(zhuǎn)模塊由硬件實(shí)施而成,且該繪圖模塊與該旋轉(zhuǎn)模塊通過繪圖加速器進(jìn)行運(yùn)算。
7.一種部分圖像旋轉(zhuǎn)方法,包括下列步驟接收一第二虛擬畫面信息;依據(jù)該第二虛擬畫面信息繪制相應(yīng)該第二虛擬畫面信息的一第二虛擬畫面;依據(jù)一第一虛擬畫面與該第二虛擬畫面確定該第二虛擬畫面中的一變化物體;將該變化物體旋轉(zhuǎn)為一旋轉(zhuǎn)物體;以及將相應(yīng)該第一虛擬畫面的一第一旋轉(zhuǎn)畫面中相應(yīng)該第二虛擬畫面中變化物體位置的部分圖像以該旋轉(zhuǎn)物體取代。
8.如權(quán)利要求7所述的部分圖像旋轉(zhuǎn)方法,還包括將該第一旋轉(zhuǎn)畫面儲存于一幀緩存器中。
9.如權(quán)利要求8所述的部分圖像旋轉(zhuǎn)方法,還包括將該幀緩存器中的該第一旋轉(zhuǎn)畫面進(jìn)行顯示。
10.如權(quán)利要求7所述的部分圖像旋轉(zhuǎn)方法,還包括將該第二虛擬畫面儲存于系統(tǒng)存儲器中。
11.如權(quán)利要求7所述的部分圖像旋轉(zhuǎn)方法,還包括將一紋理依據(jù)旋轉(zhuǎn)需求進(jìn)行旋轉(zhuǎn),并將旋轉(zhuǎn)過后的紋理作圖至旋轉(zhuǎn)物體上。
12.如權(quán)利要求10所述的部分圖像旋轉(zhuǎn)方法,其中繪制該第二虛擬畫面與將該變化物體旋轉(zhuǎn)為該旋轉(zhuǎn)物體通過中央處理單元進(jìn)行運(yùn)算。
13.如權(quán)利要求8所述的部分圖像旋轉(zhuǎn)方法,還包括將該第二虛擬畫面儲存于該幀緩存器中。
14.如權(quán)利要求13所述的部分圖像旋轉(zhuǎn)方法,其中繪制該第二虛擬畫面與將該變化物體旋轉(zhuǎn)為該旋轉(zhuǎn)物體通過繪圖加速器進(jìn)行運(yùn)算。
15.如權(quán)利要求7所述的部分圖像旋轉(zhuǎn)方法,其中該變化物體依據(jù)一顯示器所旋轉(zhuǎn)的一旋轉(zhuǎn)角度旋轉(zhuǎn)成為該旋轉(zhuǎn)物體。
16.一種部分圖像旋轉(zhuǎn)裝置,包括一幀緩存器,包括一第一存儲器區(qū)域與一第二存儲器區(qū)域,第二存儲器區(qū)域中儲存相應(yīng)一第一虛擬畫面的一第一旋轉(zhuǎn)畫面;以及一3D引擎,包括一繪圖模塊,接收一第二虛擬畫面信息,且依據(jù)該第二虛擬畫面信息繪制相應(yīng)該第二虛擬畫面信息的一第二虛擬畫面,且將該第二虛擬畫面儲存于該第一存儲器區(qū)域中;一旋轉(zhuǎn)物體確定裝置,依據(jù)該第一虛擬畫面與該第二虛擬畫面確定該第二虛擬畫面中的一變化物體;一旋轉(zhuǎn)模塊,將該變化物體依據(jù)一旋轉(zhuǎn)需求旋轉(zhuǎn)為一旋轉(zhuǎn)物體;以及一紋理作圖模塊,將一紋理依據(jù)該旋轉(zhuǎn)需求進(jìn)行旋轉(zhuǎn),并將旋轉(zhuǎn)過后的紋理作圖至該旋轉(zhuǎn)物體;當(dāng)該紋理作圖模塊紋理作圖完成后,將該第二存儲器區(qū)域的該第一旋轉(zhuǎn)畫面中相應(yīng)該第二虛擬畫面中變化物體位置的部分圖像以該旋轉(zhuǎn)物體取代。
17.如權(quán)利要求16所述的部分圖像旋轉(zhuǎn)裝置,還包括一顯示裝置,抓取該第二存儲器區(qū)域中的該第一旋轉(zhuǎn)畫面,并將該第一旋轉(zhuǎn)畫面進(jìn)行顯示。
全文摘要
本發(fā)明公開了一種部分圖像旋轉(zhuǎn)裝置及方法,該裝置包括第一緩存存儲器、幀緩存器、繪圖模塊、旋轉(zhuǎn)物體確定裝置、與旋轉(zhuǎn)模塊。幀緩存器中儲存相應(yīng)一第一虛擬畫面的第一旋轉(zhuǎn)畫面。繪圖模塊依據(jù)接收的第二虛擬畫面信息繪制相應(yīng)的第二虛擬畫面,且將第二虛擬畫面儲存于第一緩存存儲器中。旋轉(zhuǎn)物體確定裝置依據(jù)第一虛擬畫面與第二虛擬畫面決定第二虛擬畫面中的變化物體,且旋轉(zhuǎn)模塊將變化物體旋轉(zhuǎn)為一旋轉(zhuǎn)物體,且將幀緩存器的第一旋轉(zhuǎn)畫面中相應(yīng)第二虛擬畫面中變化物體位置的部分圖像以旋轉(zhuǎn)物體取代。
文檔編號G06T3/60GK1404015SQ02145868
公開日2003年3月19日 申請日期2002年10月16日 優(yōu)先權(quán)日2002年10月16日
發(fā)明者白逸民, 蘇慧玫, 林韻, 唐亮 申請人:威盛電子股份有限公司