用于基于著色器的圖形內(nèi)容的立體轉(zhuǎn)換的制作方法
【專利摘要】本發(fā)明的實(shí)例技術(shù)是針對從經(jīng)設(shè)計以產(chǎn)生單視圖的應(yīng)用程序產(chǎn)生立體視圖。舉例來說,所述技術(shù)可修改頂點(diǎn)著色器的源代碼以致使所述經(jīng)修改頂點(diǎn)著色器在執(zhí)行時產(chǎn)生所述立體視圖的圖像的圖形內(nèi)容。作為另一實(shí)例,所述技術(shù)可將定義所述單視圖的視口的命令修改為定義所述立體視圖的圖像的視口的命令。
【專利說明】用于基于著色器的圖形內(nèi)容的立體轉(zhuǎn)換
[0001]本申請案主張2011年3月14日申請的第61 / 452,289號美國臨時申請案和2011年4月12日申請的第61 / 474,638號美國臨時申請案的權(quán)利,每ー臨時申請案的相應(yīng)全部內(nèi)容特此以引用的方式并入。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及圖形數(shù)據(jù)處理,且更確切來說,涉及用于立體視圖的圖形數(shù)據(jù)處理?!颈尘凹夹g(shù)】
[0003]立體視圖指代看起來包含3維(3D)體積的所感知圖像。為了產(chǎn)生立體視圖,裝置在顯示器的2維(2D)區(qū)域上顯示兩個圖像。此兩個圖像包含實(shí)質(zhì)上類似的內(nèi)容,但所述內(nèi)容具有沿兩個圖像中的ー個或ー個以上對應(yīng)像素的水平軸的輕微位移。同時檢視2D區(qū)域上的此兩個圖像致使檢視者感知跳出正顯示兩個圖像的2D顯示器之外或推入到所述2D顯示器中的圖像。以此方式,盡管兩個圖像顯示于顯示器的2D區(qū)域上,但檢視者感知看起來包含3D體積的圖像。
[0004]立體視圖的兩個圖像分別被稱作左眼圖像和右眼圖像。左眼圖像可由檢視者的左眼檢視,且右眼圖像不可由檢視者的左眼檢視。類似地,右眼圖像可由檢視者的右眼檢視,且左眼圖像不可由檢視者的右眼檢視。舉例來說,檢視者可戴上專用眼鏡,其中眼鏡的左透鏡擋住右眼圖像且使左眼圖像通過,且眼鏡的右透鏡擋住左眼圖像且使右眼圖像通過。
[0005]因?yàn)樽笱蹐D像和右眼圖像包含具有沿水平軸的輕微位移但不可由檢視者雙眼同時檢視(例如,由于專用眼鏡)的實(shí)質(zhì)上類似的內(nèi)容,所以檢視者的大腦通過混合兩個圖像來解析對應(yīng)像素之間的輕微位移?;旌现率箼z視者將兩個圖像感知為具有3D體積的圖像。
【發(fā)明內(nèi)容】
[0006]一般來說,本發(fā)明的技術(shù)是針對修改產(chǎn)生單視圖的指令以產(chǎn)生立體視圖。舉例來說,圖形處理單元(GPU)的著色器程序可經(jīng)設(shè)計以產(chǎn)生單視圖。本發(fā)明中所描述的技術(shù)可修改此著色器程序的指令。舉例來說,實(shí)例技術(shù)可添加修改由所述著色器程序產(chǎn)生的值的指令。所述技術(shù)還可修改由應(yīng)用程序發(fā)出的指令以致使GPU產(chǎn)生立體視圖而非單視圖的圖像。舉例來說,本發(fā)明中所描述的技術(shù)可修改定義視ロ的命令。視ロ可定義顯示器上的圖像的大小和位置。舉例來說,在修改之前,命令可定義單視圖的視ロ。實(shí)例技術(shù)可修改定義單視圖的視ロ的命令以定義立體視圖的圖像中的每ー者的視ロ。
[0007]在一個實(shí)例中,本發(fā)明描述ー種包含通過處理器接收用于頂點(diǎn)著色器的指令的方法,所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于圖形處理單元(GPU)的著色器處理器上。所述方法還包含通過所述處理器修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容。所述方法進(jìn)ー步包含通過所述處理器將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令,及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令。
[0008]在另ー實(shí)例中,本發(fā)明描述ー種包含圖形處理單元(GPU)和處理器的設(shè)備,所述GTO包含著色器處理器和固定功能管線的不同于所述著色器處理器的固定功能単元。所述處理器可操作以接收用于頂點(diǎn)著色器的指令,所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于GPU的所述著色器處理器上。所述處理器還可操作以修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容。所述處理器可進(jìn)ー步操作以將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令,及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令。
[0009]在另ー實(shí)例中,本發(fā)明描述ー種包含圖形處理單元(GPU)和處理器的設(shè)備,所述GPU包含著色器處理器和固定功能管線的不同于所述著色器處理器的固定功能単元。所述處理器包含用于接收用于頂點(diǎn)著色器的指令的裝置,所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于所述GPU的所述著色器處理器上。所述處理器還包含用于修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令的裝置,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容。所述處理器進(jìn)ー步包含用于將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令及用于所述GPU的所述固定功能単元的定義所述第ニ圖像的視ロ的第二命令的裝置。
[0010]在另ー實(shí)例中,本發(fā)明描述包括指令的非暫時性計算機(jī)可讀存儲媒體。所述指令在執(zhí)行時致使ー個或ー個以上處理器接收用于頂點(diǎn)著色器的指令,所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于圖形處理單元(GPU)的著色器處理器上。所述指令還致使所述ー個或ー個以上處理器修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容。所述指令還致使所述ー個或ー個以上處理器將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令。
[0011]在隨附圖式及下文描述中闡述本發(fā)明的ー個或ー個以上方面的細(xì)節(jié)。從描述和圖式,以及從權(quán)利要求書將明白本發(fā)明的其它特征、目的和優(yōu)勢。
【專利附圖】
【附圖說明】[0012]圖1是說明可實(shí)施本發(fā)明中所描述的ー個或ー個以上實(shí)例技術(shù)的裝置的實(shí)例的框圖。
[0013]圖2是說明可實(shí)施本發(fā)明中所描述的ー個或ー個以上實(shí)例技術(shù)的圖形處理單元(GPU)的實(shí)例的框圖。
[0014]圖3是進(jìn)ー步詳細(xì)說明圖1的實(shí)例裝置的框圖。
[0015]圖4是說明根據(jù)本發(fā)明中所描述之ー個或ー個以上實(shí)例技術(shù)的實(shí)例操作的流程圖。
【具體實(shí)施方式】
[0016]本發(fā)明中所描述的實(shí)例技術(shù)是針對在執(zhí)行期間或在運(yùn)行時期間呈現(xiàn)立體3維(S3D)圖形。在常規(guī)3D圖形呈現(xiàn)中,圖形處理單元(GPU)從單個視點(diǎn)(例如,單視圖)產(chǎn)生3D圖形。此單個視點(diǎn)可意謂可由檢視者的右眼和左眼兩者檢視的單個圖像。
[0017]S3D圖形與3D圖形的不同之處在于S3D圖形產(chǎn)生立體視圖。術(shù)語立體視圖指代根據(jù)雙眼視點(diǎn)產(chǎn)生的圖像。在雙眼視點(diǎn)中,可存在兩個圖像,其中一個圖像可由眼睛中的一者檢視且不可由另ー者檢視,且反之亦然。舉例來說,當(dāng)檢視者戴上雙目鏡時,經(jīng)由雙目鏡的左透鏡進(jìn)入的光可由左眼檢視且不可由右眼檢視,且反之亦然。雙眼視點(diǎn)可被稱作立體視圖。
[0018]舉例來說,在S3D圖形中,GPU可產(chǎn)生用于左眼的圖像和用于右眼的另ー圖像,SP,立體視圖。術(shù)語立體視圖指代各自顯示于顯示器上的兩個圖像(例如,左眼圖像和右眼圖像),而單視圖指代顯示于顯示器上的單個圖像。對于檢視者來說,左眼圖像與右眼圖像的組合可看起來好像圖像正跳出正顯示圖像的顯示器之外或推入到所述顯示器中。此情形可導(dǎo)致更逼真且更豐富的檢視體驗(yàn)。
[0019]在本發(fā)明中,不應(yīng)混淆S3D圖像(例如,立體視圖)和3D圖像(例如,單視圖)的概念。3D圖像為被顯示器的2維(2D)區(qū)域約束的圖像。舉例來說,3D圖像內(nèi)的對象可看起來比3D圖像內(nèi)的其它對象較遠(yuǎn)或較近。然而,所有這些對象受限于顯示器的2D區(qū)域。S3D圖像為通過檢視者的大腦組合右眼圖像和左眼圖像產(chǎn)生的感知圖像。所得圖像(即,S3D圖像)看起來不受顯示器的2D區(qū)域約束。更確切地,S3D圖像看起來包含3D體積,其中圖像看起來跳出顯示器之外或推入到顯示器中。舉例來說,S3D圖像內(nèi)的對象看起來比3D體積而非2D區(qū)域(其為3D圖像下的情況)內(nèi)的其它對象較遠(yuǎn)或較近。
[0020]一起形成S3D圖像的右眼圖像和左眼圖像可為3D圖像。檢視者的大腦致使檢視者在大腦組合3D右眼圖像與3D左眼圖像時感知S3D圖像。右眼圖像和左眼圖像的內(nèi)容可實(shí)質(zhì)上類似于單個3D圖像的內(nèi)容。本發(fā)明中所描述的技術(shù)可將致使GPU產(chǎn)生單視圖的圖形內(nèi)容的指令修改為致使GPU產(chǎn)生立體視圖的圖形內(nèi)容的指令。換句話說,在修改之前,指令可致使GPU產(chǎn)生單個3D圖像。在修改之后,指令可致使GPU產(chǎn)生兩個3D圖像(例如,3D左眼圖像和3D右眼圖像)。
[0021]應(yīng)注意,盡管本發(fā)明中所描述的技術(shù)大體上是針對3D圖像而掲示的,但本發(fā)明的方面不限于此。本發(fā)明的技術(shù)還可擴(kuò)展到2D圖形。舉例來說,單視圖的單個圖像可為2D圖像,且本發(fā)明的技術(shù)可修改指令以致使GPU產(chǎn)生立體視圖的兩個2D圖像。在此狀況下,檢視者將感知到跳出正顯示立體視圖的兩個圖像的顯示器之外或推入到所述顯示器中的單個圖像。為了避免混淆,下文描述的技術(shù)涉及單視圖的單個圖像及立體視圖的左眼和右眼圖像(在理解此些圖像可為3D圖像或2D圖像的情況下)。
[0022]本發(fā)明中所描述的實(shí)例技術(shù)可修改由應(yīng)用程序發(fā)出的待由GPU執(zhí)行的指令及待由GPU執(zhí)行的頂點(diǎn)著色器程序的指令。舉例來說,應(yīng)用程序處理器可執(zhí)行所述應(yīng)用程序。所述應(yīng)用程序可經(jīng)設(shè)計以產(chǎn)生單個圖像(例如,單視圖),且可產(chǎn)生單個圖像的圖形內(nèi)容作為多個基元。另外,所述應(yīng)用程序可確定基元的每ー頂點(diǎn)的像素值,例如顔色、透明度和坐標(biāo)值。
[0023]在應(yīng)用程序的執(zhí)行期間(例如,在運(yùn)行時),應(yīng)用程序發(fā)出命令以檢索頂點(diǎn)著色器程序的指令。頂點(diǎn)著色器程序在執(zhí)行時的輸出可為單個圖像(例如,單視圖)的由應(yīng)用程序產(chǎn)生的基元的頂點(diǎn)的剪切坐標(biāo)。實(shí)例技術(shù)可修改頂點(diǎn)著色器程序的指令以產(chǎn)生左眼圖像和右眼圖像(例如,立體視圖)的基元的頂點(diǎn)的剪切坐標(biāo)。
[0024]而且,在應(yīng)用程序的執(zhí)行期間,應(yīng)用程序?qū)⒗L制指令發(fā)出到GPU以指揮GPU繪制單個圖像內(nèi)的基元中的一者或一者以上。舉例來說,在本發(fā)明的技術(shù)中,執(zhí)行于應(yīng)用程序處理器上的應(yīng)用程序輸出指令,就好像GPU將要產(chǎn)生單個圖像的圖形內(nèi)容一祥。本文中所描述的技術(shù)修改由應(yīng)用程序發(fā)出的指令(例如,繪制指令)中的一者或一者以上,以產(chǎn)生左眼圖像和右眼圖像的圖形內(nèi)容。以此方式,從應(yīng)用程序的視角來看,不存在對指令的修改。
[0025]舉例來說,本發(fā)明中所描述的技術(shù)監(jiān)視由應(yīng)用程序發(fā)出的指令。當(dāng)應(yīng)用程序發(fā)出繪制指令時,所述技術(shù)捕獲此繪制指令且發(fā)出兩個繪制指令,其中ー個指令將產(chǎn)生左眼圖像的圖形內(nèi)容,且ー個指令將產(chǎn)生右眼圖像的圖形內(nèi)容。
[0026]另外,所述技術(shù)修改由應(yīng)用程序發(fā)出的視ロ指令。舉例來說,應(yīng)用程序發(fā)出定義單個圖像的視ロ的視ロ指令。視ロ定義顯示器上的圖像的大小和位置。舉例來說,視ロ可定義圖像的開始坐標(biāo)及圖像的寬度和長度。圖像的寬度和長度可為指示由圖像包含的水平距離和垂直距離的值。寬度和長度不一定需要為坐標(biāo)值;更確切地,寬度和長度定義從圖像的開始坐標(biāo)開始的距離。應(yīng)用程序可向GPU提供單個圖像的視ロ的定義。
[0027]本發(fā)明的技術(shù)修改視ロ指令以產(chǎn)生用于左眼圖像和右眼圖像的定義顯示器上的左眼圖像和右眼圖像中的每ー者的大小和位置的視ロ指令。以此方式,經(jīng)修改視ロ指令可將左眼圖像約束到顯示器的ー個部分,且將右眼圖像約束到顯示器的另一部分。在ー些實(shí)例中,經(jīng)修改視ロ指令可將左眼圖像約束到顯示器的左半邊,且將右眼圖像約束到顯示器的右半邊。然而,本發(fā)明的方面不限于此,且作為另ー非限制性實(shí)例,經(jīng)修改視ロ指令可將左眼圖像約束到顯示器的上半部,且將右眼圖像約束到顯示器的下半部。在一些情況下,實(shí)例技術(shù)可進(jìn)一歩修改右眼圖像和左眼圖像的視ロ以潛在地提供更好的檢視體驗(yàn)。舉例來說,所述技術(shù)可將右眼圖像和左眼圖像的視ロ移位或拉伸。
[0028]修改視ロ的指令可不為修改著色器程序的指令的部分。舉例來說,GPU可包含有時被稱作著色器核心的著色器處理器,及ー個或ー個以上固定功能単元。頂點(diǎn)著色器程序可在著色器處理器上執(zhí)行,且用以將圖像約束到經(jīng)定義視ロ的視ロ的應(yīng)用程序可由固定功能単元(例如,固定功能単元的視ロ變換單元)中的至少ー者執(zhí)行。在實(shí)例技術(shù)中,著色器處理器可執(zhí)行經(jīng)修改著色器程序以產(chǎn)生立體視圖的圖形內(nèi)容,且至少ー個固定功能単元可應(yīng)用左眼圖像和右眼圖像中的每ー者的經(jīng)定義視ロ以將此些圖像約束到顯示器的相應(yīng)半部。換句話說,視ロ修改可在經(jīng)修改著色器程序的執(zhí)行之外發(fā)生。[0029]圖1是說明可實(shí)施本發(fā)明中所描述的ー個或ー個以上實(shí)例技術(shù)的裝置的實(shí)例的框圖。舉例來說,圖1說明裝置10。裝置10的實(shí)例包含但不限于移動無線電話、個人數(shù)字助理(PDA)、包含視頻顯示器的電視游戲機(jī)、移動視頻會議單元、膝上型計算機(jī)、臺式計算機(jī)、電視機(jī)頂盒、數(shù)字媒體播放器、智能手機(jī)等等。如圖1中所說明,裝置10可包含應(yīng)用程序處理器12、圖形處理單元(GPU) 20和系統(tǒng)存儲器26。除了圖1中所說明的組件之外,裝置10還可包含其它組件。此些組件出于清楚的目的在圖1中未說明,且在圖3中進(jìn)ー步說明。
[0030]應(yīng)用程序處理器12可為裝置10的中央處理單元(CPU)。GPU20可為可操作以輸出圖形數(shù)據(jù)以供呈現(xiàn)于顯示器上的處理單元。應(yīng)用程序處理器12和GPU20的實(shí)例包含但不限于數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。
[0031]系統(tǒng)存儲器26可為計算機(jī)可讀存儲媒體的實(shí)例。舉例來說,系統(tǒng)存儲器26可存儲致使應(yīng)用程序處理器12和GPU20執(zhí)行在本發(fā)明中屬于各自的功能的指令。以此方式,系統(tǒng)存儲器26可被視為包括指令的計算機(jī)可讀存儲媒體,所述指令致使ー個或ー個以上處理器(例如,應(yīng)用程序處理器12或GPU20)執(zhí)行各種功能。
[0032]系統(tǒng)存儲器26的實(shí)例包含但不限于隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器或可用來載運(yùn)或存儲呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所要程序代碼且可由計算機(jī)或處理器存取的任何其它媒體。在一些實(shí)例中,系統(tǒng)存儲器26可被視為非暫時性存儲媒體。術(shù)語“非暫時性”可指示存儲媒體未以載波或經(jīng)傳播信號形式體現(xiàn)。然而,術(shù)語“非暫時性”不應(yīng)解釋為意謂系統(tǒng)存儲器26為不可移動的。作為ー個實(shí)例,可將系統(tǒng)存儲器26從裝置10移除,且移動到另ー裝置。作為另ー實(shí)例,實(shí)質(zhì)上類似于系統(tǒng)存儲器26的存儲裝置可插入到裝置10中。在某些實(shí)例中,非暫時性存儲媒體可存儲可隨時間的流逝而改變的數(shù)據(jù)(例如在RAM中)。
[0033]GPU20可包含著色器處理器22和固定功能管線24。有時被稱作著色器核心的著色器處理器22可為執(zhí)行例如頂點(diǎn)著色器和片段著色器等著色器程序的GPU20的核心。固定功能管線24可包含執(zhí)行固定功能的硬件単元。換句話說,例如頂點(diǎn)著色器和片段著色器等著色器程序可為在著色器處理器22上執(zhí)行且允許功能靈活性的軟件單元,而固定功能管線24包含具有固定功能和最小功能靈活性的硬件単元。
[0034]本發(fā)明中所描述的實(shí)例技術(shù)可修改經(jīng)設(shè)計以產(chǎn)生單個三維(3D)圖像(例如,針對單視圖)的著色器程序,使得當(dāng)經(jīng)修改著色器程序執(zhí)行于著色器處理器22上吋,GPU20產(chǎn)生S3D圖像(例如,立體視圖)的圖形數(shù)據(jù)。再一次,如上文所論述,立體視圖包含左眼圖像和右眼圖像。左眼圖像和右眼圖像包含與單視圖圖像實(shí)質(zhì)上類似的圖形內(nèi)容;然而,左眼圖像和右眼圖像的ー個或ー個以上對應(yīng)像素可沿水平軸相對于彼此位移。舉例來說,想象將右眼圖像置于左眼圖像之上。在此狀況下,右眼圖像中的所有內(nèi)容可不與左眼圖像中的相同內(nèi)容完全對齊。更確切地,右眼中的ー個或ー個以上對象可在左眼圖像中的相同對象的左邊或右邊。
[0035]左眼圖像可由檢視者的左眼檢視,且右眼圖像被擋住以免被檢視者的左眼看到。右眼圖像可由檢視者的右眼檢視,且左眼圖像被擋住以免被檢視者的右眼看到。在ー些實(shí)例中,檢視者可戴上專用眼鏡,其擋住左眼圖像以免可由右眼檢視到,且擋住右眼圖像以免可由左眼檢視到。然而,本發(fā)明的方面不一定要求檢視者戴上專用眼鏡。舉例來說,一些顯示器不要求檢視者戴上專用眼鏡來體驗(yàn)立體視圖。本發(fā)明的技術(shù)可擴(kuò)展到此些顯示器。
[0036]GPU20可產(chǎn)生用于左眼圖像和右眼圖像的圖形數(shù)據(jù),使得當(dāng)檢視者同時檢視左眼圖像和右眼圖像兩者時,檢視者的大腦致使檢視者感知跳出正顯示兩個圖像的顯示器之外或推入到顯示器中(例如,看起來在顯示器之前或之后)的圖像。此跳出或推入是歸因于檢視者的大腦解析立體視圖的具有實(shí)質(zhì)上類似內(nèi)容的兩個圖像中的水平差異。
[0037]作為實(shí)例,應(yīng)用程序處理器12可執(zhí)行存儲于系統(tǒng)存儲器26中的ー個或ー個以上應(yīng)用程序,例如應(yīng)用程序32。應(yīng)用程序32的實(shí)例包含但不限于網(wǎng)絡(luò)瀏覽器、用戶接ロ、電子郵件應(yīng)用程序、電子表格應(yīng)用程序、字處理應(yīng)用程序、圖形創(chuàng)作應(yīng)用程序、電視游戲或產(chǎn)生可檢視對象以供顯示的其它應(yīng)用程序。舉例來說,應(yīng)用程序32可為電視游戲,所述電視游戲當(dāng)執(zhí)行時輸出顯示于顯示器上的圖形內(nèi)容。
[0038]應(yīng)用程序32可由開發(fā)者針對單視圖進(jìn)行設(shè)計。舉例來說,應(yīng)用程序32在執(zhí)行時可產(chǎn)生3D圖形內(nèi)容,其中3D圖形內(nèi)容被顯示器的2D區(qū)域約束。應(yīng)用程序32在執(zhí)行于應(yīng)用程序處理器12上時可將所產(chǎn)生3D圖形內(nèi)容劃分成基元,例如三角形、矩形或其它類型的多邊形。此些基元中的每ー者可包含待顯示于顯示器上的像素。應(yīng)用程序32在執(zhí)行于應(yīng)用程序處理器12上時還可將像素值指派給基元的頂點(diǎn)中的每ー者。舉例來說,所述像素值可包含頂點(diǎn)的3D坐標(biāo)、頂點(diǎn)的顔色值及頂點(diǎn)的透明度值。像素值不需要在本發(fā)明的每一方面中包含所有上文實(shí)例組件。
[0039]應(yīng)用程序處理器12接著可將頂點(diǎn)的像素值轉(zhuǎn)發(fā)到GPU20以供進(jìn)一歩處理。舉例來說,應(yīng)用程序處理器12可包含圖形驅(qū)動程序14,圖形驅(qū)動程序14可為執(zhí)行于應(yīng)用程序處理器12上的軟件。圖形驅(qū)動程序14可經(jīng)設(shè)計以將命令傳輸?shù)紾PU20,且作為響應(yīng),GPU20可根據(jù)所接收命令執(zhí)行功能。舉例來說,圖形驅(qū)動程序14充當(dāng)GPU20與應(yīng)用程序處理器12之間的接ロ。當(dāng)應(yīng)用程序處理器12將命令發(fā)出到GPU20吋,GPU20通過圖形驅(qū)動程序14接收命令。舉例來說,執(zhí)行于應(yīng)用程序處理器12上的應(yīng)用程序32可指揮GPU20執(zhí)行特定任務(wù)。在此狀況下,圖形驅(qū)動程序14可從應(yīng)用程序32接收針對特定任務(wù)的指令,且可將指令提供到GPU20。作為響應(yīng),GPU20可執(zhí)行任務(wù)。
[0040]在一些實(shí)例中,可根據(jù)特定應(yīng)用程序編程接ロ(API)來設(shè)計圖形驅(qū)動程序14。舉例來說,可根據(jù)OpenGL或OpenGL ES (嵌入式系統(tǒng))API來設(shè)計圖形驅(qū)動程序14,所述OpenGL或OpenGL ES API為科納斯集團(tuán)(Khronos Group)的API,且其規(guī)范可公開獲得。然而,本發(fā)明的技術(shù)可擴(kuò)展到微軟的DirectX系統(tǒng),例如DirectX9、10或11,或任何其它基于著色器的圖形系統(tǒng)和API。出于說明的目的,在API為OpenGL ES2.0API的背景下描述本發(fā)明的技木。然而,本發(fā)明的方面不限于此,且可擴(kuò)展到其它API或基于著色器的圖形系統(tǒng)。
[0041]為了呈現(xiàn)從應(yīng)用程序處理器12接收的基元,GPU20的著色器處理器22可執(zhí)行例如頂點(diǎn)著色器和片段著色器等ー個或ー個以上著色器程序以產(chǎn)生顯示器的像素的像素值。開發(fā)者可根據(jù)API (例如,出于說明的目的而在本發(fā)明中使用的OpenGL ES2.0API)開發(fā)這些頂點(diǎn)著色器和片段著色器。此些頂點(diǎn)和片段著色器的源代碼可存儲于系統(tǒng)存儲器26中。
[0042]舉例來說,應(yīng)用程序32可利用頂點(diǎn)著色器28,頂點(diǎn)著色器28可經(jīng)設(shè)計以產(chǎn)生單視圖。舉例來說,可需要由著色器處理器22使用頂點(diǎn)著色器28來處理由應(yīng)用程序32產(chǎn)生的像素值。作為ー個實(shí)例,頂點(diǎn)著色器28可為在應(yīng)用程序32在應(yīng)用程序處理器12上的執(zhí)行期間由應(yīng)用程序32特別地調(diào)用的頂點(diǎn)著色器。頂點(diǎn)著色器28可在GPU20的著色器處理器22上執(zhí)行,且應(yīng)用程序32可在應(yīng)用程序處理器12上執(zhí)行,但頂點(diǎn)著色器28和應(yīng)用程序32可出于顯示由應(yīng)用程序32產(chǎn)生的圖像的目的而相互關(guān)連。
[0043]頂點(diǎn)著色器28的源代碼可存儲于系統(tǒng)存儲器26中。圖形驅(qū)動程序14可檢索頂點(diǎn)著色器28的源代碼,且將頂點(diǎn)著色器28的源代碼提供到編譯器18。編譯器18可對頂點(diǎn)著色器28的源代碼進(jìn)行編譯以產(chǎn)生頂點(diǎn)著色器28的目標(biāo)代碼,且將目標(biāo)代碼存儲于系統(tǒng)存儲器28中。圖形驅(qū)動程序14接著可指揮GPU20從系統(tǒng)存儲器26檢索頂點(diǎn)著色器28的目標(biāo)代碼,且指揮GPU20在著色器處理器22上執(zhí)行頂點(diǎn)著色器28的目標(biāo)代碼。著色器處理器22接著可執(zhí)行頂點(diǎn)著色器28的目標(biāo)代碼以處理由應(yīng)用程序32的執(zhí)行產(chǎn)生的頂點(diǎn)的像素值。GPU20與固定功能管線24和著色器處理器22結(jié)合可產(chǎn)生應(yīng)用程序32的圖形內(nèi)容以供顯示。
[0044]盡管系統(tǒng)存儲器26經(jīng)展示為存儲僅ー個頂點(diǎn)著色器28的源代碼,但本發(fā)明的方面不限于此。舉例來說,應(yīng)用程序32可有可能利用多個不同頂點(diǎn)著色器,且此些頂點(diǎn)著色器中的每ー者的源代碼可存儲于系統(tǒng)存儲器26中。而且,應(yīng)用程序32可需要執(zhí)行頂點(diǎn)著色器28的多個實(shí)例化。舉例來說,著色器處理器22可同時(例如,并行)執(zhí)行頂點(diǎn)著色器28的多個實(shí)例化,其中頂點(diǎn)著色器28的每ー實(shí)例化執(zhí)行實(shí)質(zhì)上類似的功能,但針對不同的像素值。系統(tǒng)存儲器26可類似地存儲片段著色器的源代碼。圖形驅(qū)動程序14可檢索片段著色器的源代碼,且編譯器18可對源代碼進(jìn)行編譯以按類似于上文針對頂點(diǎn)著色器28所描述的方式的方式產(chǎn)生片段著色器的目標(biāo)代碼。
[0045]如將進(jìn)ー步詳細(xì)描述,本發(fā)明的ー個或ー個以上實(shí)例技術(shù)可在編譯之前修改頂點(diǎn)著色器28的源代碼。編譯器18可對經(jīng)修改源代碼進(jìn)行編譯以產(chǎn)生經(jīng)修改頂點(diǎn)著色器30的目標(biāo)代碼。著色器處理器22可執(zhí)行經(jīng)修改頂點(diǎn)著色器30的目標(biāo)代碼,所述目標(biāo)代碼可致使GPU20產(chǎn)生立體3D圖形內(nèi)容(例如,S3D的左眼圖像和右眼圖像的圖形內(nèi)容)。然而,在描述對頂點(diǎn)著色器28的源代碼的修改之前,下文描述頂點(diǎn)著色器28的實(shí)例功能性,其可有助于理解應(yīng)用到頂點(diǎn)著色器`28的源代碼的修改。
[0046]如上文所描述,應(yīng)用程序32可產(chǎn)生基元的頂點(diǎn)的坐標(biāo)。此些坐標(biāo)可被稱作世界坐標(biāo),且可針對應(yīng)用程序32是特定的。換句話說,如由應(yīng)用程序32定義的頂點(diǎn)的坐標(biāo)可不一定為顯示基元的顯示器的坐標(biāo),且還可能為在可檢視ロ域外部的頂點(diǎn)的坐標(biāo)。頂點(diǎn)著色器28可經(jīng)設(shè)計以將可為3D的世界坐標(biāo)轉(zhuǎn)換成顯示器的2D坐標(biāo)(例如,顯示坐標(biāo))。為了執(zhí)行此功能,頂點(diǎn)著色器28可將世界坐標(biāo)變換成眼睛坐標(biāo),且接著變換成剪切坐標(biāo)。舉例來說,頂點(diǎn)著色器28在執(zhí)行時的輸出可為頂點(diǎn)的剪切坐標(biāo)。作為固定功能管線24的部分,隨后可確定最終顯示坐標(biāo)(例如,顯示器的坐標(biāo))。
[0047]剪切坐標(biāo)可定義視錐。視錐可定義3D圖形內(nèi)容的可檢視ロ域。GPU20可利用視錐來剔除位于視錐外部的像素。舉例來說,固定功能管線24的固定功能単元(例如,固定功能管線24的視錐單元)可剔除位于視錐外部的像素,如由頂點(diǎn)著色器28產(chǎn)生的剪切坐標(biāo)所定義。
[0048]用以根據(jù)世界坐標(biāo)計算剪切坐標(biāo)的等式可為:
[0049]Vclip=PRJ*Veye=PRJ*MVT*Vworld,(等式 I)
[0050]其中Vclip為頂點(diǎn)剪切坐標(biāo),Veye為頂點(diǎn)眼睛坐標(biāo),Vworld為由應(yīng)用程序32提供的頂點(diǎn)世界坐標(biāo),PRJ為投影矩陣,且MVT為模型視圖變換矩陣(或世界視圖變換矩陣)。在一些實(shí)例中,PRJ和MVT矩陣可組合成單個矩陣。然而,為了容易理解,單獨(dú)地描述此些矩陣。
[0051]投影矩陣(PRJ)和模型視圖或世界視圖變換矩陣(MVT)可由API定義。術(shù)語模型視圖和世界視圖可互換地使用。Vclip、Veye和Vworld可包含四個分量(例如,x、y、z和w坐標(biāo))。舉例來說,Vclip、Veye和Vworld可表示為:
【權(quán)利要求】
1.ー種方法,其包括: 通過處理器接收用于頂點(diǎn)著色器的指令,所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于圖形處理單元GPU的著色器處理器上; 通過所述處理器修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容;及 通過所述處理器將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令,及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)ー步包括: 通過所述GPU的所述著色器處理器執(zhí)行所述頂點(diǎn)著色器的所述經(jīng)修改指令的目標(biāo)代碼;及 通過所述GPU的所述固定功能単元執(zhí)行定義所述第一圖像的所述視ロ的所述第一命令及定義所述第二圖像的所述視ロ的所述第二命令。
3.根據(jù)權(quán)利要求1所述的方法,其中修改定義所述圖像的所述視ロ的所述命令,使得所述第一命令經(jīng)配置以將所述第一圖像約束到顯示器的第一部分,且所述第二命令經(jīng)配置以將所述第二圖像約束到所述顯示器的第二部分。
4.根據(jù)權(quán)利要求1所述的方法,其中修改定義所述圖像的所述視ロ的所述命令進(jìn)ー步包括將所述第一圖像的所述視ロ移位或移位和拉伸,及將所述第二圖像的所述視ロ移位或移位和拉伸。
5.根據(jù)權(quán)利要求1所述的方法,其中修改定義所述圖像的所述視ロ的所述命令包括將glViewport (0,0,寬度,長度)命令修改為包括glViewport (0,0,寬度/ 2,長度)命令的所述第一命令,及包括glViewport (寬度/ 2,0,寬度/ 2,長度)命令的所述第二命令,且其中寬度等于顯示器的寬度,且長度等于所述顯示器的長度。
6.根據(jù)權(quán)利要求1所述的方法,其中修改定義所述圖像的所述視ロ的所述命令包括將glViewport (0,0,寬度,長度)命令修改為包括glViewport (0_Vps,0,寬度/ 2,長度)命令或glViewport (0-Vps,0,寬度/ 2+Vps,長度)命令的所述第一命令,及包括glViewport (寬度 / 2+Vps,0,寬度 / 2,長度)命令或 glViewport (寬度 / 2,0,寬度/2+Vps,長度)命令的所述第二命令,且其中寬度等于顯示器的寬度,長度等于所述顯示器的長度,且Vps定義所述立體視圖跳出所述顯示器之外或推入到所述顯示器中的量。
7.根據(jù)權(quán)利要求1所述的方法,其中所述固定功能単元包括所述GPU的固定功能管線的視ロ變換單元。
8.根據(jù)權(quán)利要求1所述的方法 ,其中接收所述頂點(diǎn)著色器的指令包括通過執(zhí)行于所述處理器上的圖形驅(qū)動程序包裝器接收所述頂點(diǎn)著色器的所述指令,其中修改所述頂點(diǎn)著色器的所述指令包括通過執(zhí)行于所述處理器上的所述圖形驅(qū)動程序包裝器修改所述頂點(diǎn)著色器的所述指令,且其中修改定義所述視ロ的所述命令包括通過執(zhí)行于所述處理器上的所述圖形驅(qū)動程序包裝器修改定義所述視ロ的所述命令。
9.根據(jù)權(quán)利要求1所述的方法,其中修改所述頂點(diǎn)著色器的所述指令包括將修改所述單視圖的所述圖像的至少ー個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中。
10.根據(jù)權(quán)利要求9所述的方法,其中將修改至少ー個剪切坐標(biāo)的所述指令添加到所述頂點(diǎn)著色器中包括將更新存儲所述至少一個剪切坐標(biāo)的變量的指令添加到所述頂點(diǎn)著色器中。
11.根據(jù)權(quán)利要求10所述的方法,其中將更新存儲所述至少一個剪切坐標(biāo)的所述變量的所述指令添加到所述頂點(diǎn)著色器中包括在所述第一次執(zhí)行中添加用于將常量值加到所述至少一個剪切坐標(biāo)的指令,及在所述第二次執(zhí)行中添加用于從所述至少一個剪切坐標(biāo)減去所述常量值的指令。
12.根據(jù)權(quán)利要求10所述的方法,其中將修改所述單視圖的所述圖像的所述至少ー個剪切坐標(biāo)的所述指令添加到所述頂點(diǎn)著色器中包括添加gl.Position.x+=X命令,其中X在所述第一次執(zhí)行中等于+D且在所述第二次執(zhí)行中等于-D,且其中D等于檢視者的左眼與右眼之間的距離的一半的估計。
13.根據(jù)權(quán)利要求1所述的方法,其中修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令包括僅將修改所述單視圖的所述圖像的一個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中。
14.一種設(shè)備,其包括: 圖形處理單元GPU,其包含著色器處理器和固定功能管線的不同于所述著色器處理器的固定功能單元 '及 處理器,其可操作以: 接收用于頂點(diǎn)著色器的指令,所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于所述GPU的所述著色器處理器`上; 修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容;及 將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的所述固定功能単元的定義所述第一圖像的視ロ的第一命令,及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令。
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述GPU的所述著色器處理器經(jīng)配置以執(zhí)行所述頂點(diǎn)著色器的所述經(jīng)修改指令的目標(biāo)代碼,且其中所述GPU的所述固定功能單元經(jīng)配置以執(zhí)行定義所述第一圖像的所述視ロ的所述第一命令及定義所述第二圖像的所述視ロ的所述第二命令。
16.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述處理器可操作以修改定義所述圖像的所述視ロ的所述命令,使得所述第一命令經(jīng)配置以將所述第一圖像約束到顯示器的第一部分,且所述第二命令經(jīng)配置以將所述第二圖像約束到所述顯示器的第二部分。
17.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述處理器可進(jìn)ー步操作以修改定義所述圖像的所述視ロ的所述命令,以將所述第一圖像的所述視ロ移位或移位和拉伸,及將所述第二圖像的所述視ロ移位或移位和拉伸。
18.根據(jù)權(quán)利要求14所述的設(shè)備,其中為了修改定義所述圖像的所述視ロ的所述命令,所述處理器可操作以將glViewport (0,0,寬度,長度)命令修改為包括glViewport (0,.0,寬度/ 2,長度)命令的所述第一命令,及包括glViewport (寬度/ 2,0,寬度/ 2,長度)命令的所述第二命令,且其中寬度等于顯示器的寬度,且長度等于所述顯示器的長度。
19.根據(jù)權(quán)利要求14所述的設(shè)備,其中為了修改定義所述圖像的所述視ロ的所述命令,所述處理器可操作以將glViewport (0,0,寬度,長度)命令修改為包括glViewport (O-Vps, 0,寬度 / 2,長度)命令或 glViewport (0_Vps, 0,寬度 / 2+Vps,長度)命令的所述第一命令,及包括glViewport (寬度/ 2+Vps,0,寬度/ 2,長度)命令或glViewport (寬度/ 2,0,寬度/ 2+Vps,長度)命令的所述第二命令,且其中寬度等于顯示器的寬度,長度等于所述顯示器的長度,且Vps定義所述立體視圖跳出所述顯示器之外的量。
20.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述固定功能単元包括視ロ變換單元。
21.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述處理器可操作以執(zhí)行圖形驅(qū)動程序包裝器以接收用于頂點(diǎn)著色器的指令,修改所述頂點(diǎn)著色器的所述指令,及修改定義所述圖像的視ロ的所述命令。
22.根據(jù)權(quán)利要求14所述的設(shè)備,其中為了修改所述頂點(diǎn)著色器的所述指令,所述處理器可操作以將修改所述單視圖的所述圖像的至少ー個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中。
23.根據(jù)權(quán)利要求22所述的設(shè)備,其中為了將修改至少ー個剪切坐標(biāo)的所述指令添加到所述頂點(diǎn)著色器中,所述處理器可操作以將更新存儲所述至少一個剪切坐標(biāo)的變量的指令添加到所述頂點(diǎn)著色器中。
24.根據(jù)權(quán)利要求23所述的設(shè)備,其中為了將更新存儲所述至少ー個剪切坐標(biāo)的所述變量的所述指令添加到所述頂點(diǎn)著色器中,所述處理器可操作以在所述第一次執(zhí)行中添加用于將常量值加到所述至少一個剪切坐標(biāo)的指令,及在所述第二次執(zhí)行中添加用于從所述至少ー個剪切坐標(biāo)減去所述常量值的指令。
25.根據(jù)權(quán)利要求23所述的設(shè)備,其中為了將修改所述單視圖的所述圖像的所述至少ー個剪切坐標(biāo)的所述指令添加到所述頂點(diǎn)著色器中,所述處理器可操作以添加gl.Position.x+=X命令,其中X在所述第一次執(zhí)行中等于+D且在所述第二次執(zhí)行中等于-D,且其中D等于檢視者的左眼與右眼之間的距離的一半的估計。
26.根據(jù)權(quán)利要求14所述的設(shè)備,其中為了修改所述頂點(diǎn)著色器的所述指令以包含一個或ー個以上指令,所述處理器可操作以僅將修改所述單視圖的所述圖像的ー個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中。
27.—種設(shè)備,其包括: 圖形處理單元GPU,其包含著色器處理器和固定功能管線的不同于所述著色器處理器的固定功能單元 '及 處理器,其包含: 用于接收用于頂點(diǎn)著色器的指令的裝置, 所述頂點(diǎn)著色器經(jīng)配置以產(chǎn)生單視圖的圖像,且將執(zhí)行于所述GPU的所述著色器處理器上; 用于修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令的裝置,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容;及 用于將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令的裝置。
28.根據(jù)權(quán)利要求27所述的設(shè)備,其中所述GPU的所述著色器處理器經(jīng)配置以執(zhí)行所述頂點(diǎn)著色器的所述經(jīng)修改指令的目標(biāo)代碼,且其中所述GPU的所述固定功能單元經(jīng)配置以執(zhí)行定義所述第一圖像的所述視ロ的所述第一命令及定義所述第二圖像的所述視ロ的所述第二命令。
29.根據(jù)權(quán)利要求27所述的設(shè)備,其中所述裝置用于修改定義所述圖像的所述視ロ的所述命令,使得所述第一命令經(jīng)配置以將所述第一圖像約束到顯示器的第一部分,且所述第二命令經(jīng)配置以將所述第二圖像約束到所述顯示器的第二部分。
30.根據(jù)權(quán)利要求27所述的設(shè)備,其中所述用于修改定義所述圖像的所述視ロ的所述命令的裝置進(jìn)ー步包括用于將所述第一圖像的所述視ロ移位或移位和拉伸的裝置,及用于將所述第二圖像的所述視ロ移位或移位和拉伸的裝置。
31.根據(jù)權(quán)利要求27所述的設(shè)備,其中所述用于修改所述頂點(diǎn)著色器的所述指令的裝置包括用于將修改所述單視圖的所述圖像的至少ー個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中的裝置。
32.根據(jù)權(quán)利要求27所述的設(shè)備,其中所述用于修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令的裝置包括用于僅將修改所述單視圖的所述圖像的ー個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中的裝置。
33.ー種包括指令的非暫時性計算機(jī)可讀存儲媒體,所述指令在執(zhí)行時致使一個或ー個以上處理器: 接收用于頂點(diǎn)著色器的指令,所述頂點(diǎn)著色器經(jīng)設(shè)計以產(chǎn)生單視圖的圖像,且將執(zhí)行于圖形處理單元GPU的著色器處理器上; 修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令,所述ー個或ー個以上指令致使所述頂點(diǎn)著色器在執(zhí)行于所述GPU的所述著色器處理器上時在所述頂點(diǎn)著色器的第一次執(zhí)行之后產(chǎn)生立體視圖的第一圖像的圖形內(nèi)容及在所述頂點(diǎn)著色器的第二次執(zhí)行之后產(chǎn)生所述立體視圖的第二圖像的圖形內(nèi)容;及 將定義所述單視圖的所述圖像的視ロ的命令修改為用于不同于所述著色器處理器的所述GPU的固定功能単元的定義所述第一圖像的視ロ的第一命令,及用于所述GPU的所述固定功能単元的定義所述第二圖像的視ロ的第二命令。
34.根據(jù)權(quán)利要求33所述的非暫時性計算機(jī)可讀存儲媒體,其進(jìn)ー步包括用以進(jìn)行以下操作的指令: 通過所述GPU的所述著色器處理器執(zhí)行所述頂點(diǎn)著色器的所述經(jīng)修改指令的目標(biāo)代碼;及 通過所述GPU的所述固定功能単元執(zhí)行定義所述第一圖像的所述視ロ的所述第一命令及定義所述第二圖像的所述視ロ的所述第二命令。
35.根據(jù)權(quán)利要求33所述的非暫時性計算機(jī)可讀存儲媒體,其中所述用以修改定義所述圖像的所述視ロ的所述命令的指令包括用以將定義所述單視圖的所述圖像的所述視ロ的所述命令修改為將所述第一圖像約束到顯示器的第一部分的所述第一命令及將所述第二圖像約束到所述顯示器的第二部分的所述第二命令的指令。
36.根據(jù)權(quán)利要求33所述的非暫時性計算機(jī)可讀存儲媒體,其中所述用以修改定義所述圖像的所述視ロ的所述命令的指令進(jìn)ー步包括用以將所述第一圖像的所述視ロ移位或移位和拉伸及將所述第二圖像的所述視ロ移位或移位和拉伸的指令。
37.根據(jù)權(quán)利要求33所述的非暫時性計算機(jī)可讀存儲媒體,其中所述用以修改所述頂點(diǎn)著色器的所述指令的指令包括用以將修改所述單視圖的所述圖像的至少ー個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中的指令。
38.根據(jù)權(quán)利要求33所述的非暫時性計算機(jī)可讀存儲媒體,其中所述用以修改所述頂點(diǎn)著色器的所述指令以包含ー個或ー個以上指令的指令包括用以僅將修改所述單視圖的所述圖像的一個剪切坐標(biāo)的指令添加到所述頂點(diǎn)著色器中的指令。
【文檔編號】G06T15/00GK103493102SQ201280018404
【公開日】2014年1月1日 申請日期:2012年3月12日 優(yōu)先權(quán)日:2011年3月14日
【發(fā)明者】畢寧, 張雪瑞, 魏建 申請人:高通股份有限公司