技術(shù)領(lǐng)域
一個或多個實施例涉及圖形管線方法和設(shè)備。
背景技術(shù):
圖形處理裝置或元件(諸如圖形處理單元(GPUs))可在計算裝置中執(zhí)行圖形數(shù)據(jù)的渲染。僅作為一個示例,這樣的圖形處理裝置可將對應(yīng)于二維或三維對象的圖形數(shù)據(jù)轉(zhuǎn)換為二維像素表示,以產(chǎn)生用于顯示的幀。
技術(shù)實現(xiàn)要素:
一個或多個實施例包括圖形管線方法,所述方法包括:通過針對多個屏幕像素中的每一個基于設(shè)置的模式確定采樣點的位置,來使用一個或多個處理裝置針對顯示器的多個屏幕像素確定采樣點的各自的位置,以修改待渲染的圖像;在采樣點中的被確定為與被設(shè)置為將要被光柵化的圖元疊置的采樣點的確定的位置上,產(chǎn)生基于圖像的并與設(shè)置的圖元對應(yīng)的像素,使用產(chǎn)生的像素渲染圖像。
所述模式可以是用于將畸變施加到圖像的畸變模式,以使渲染的圖像是畸變圖像。
所述各自的位置的確定可包括:基于多個屏幕像素的每個修改的位置的各自的中心位置確定采樣點的各自的位置,其中,所述多個屏幕像素可被布置在等距離或重復(fù)的網(wǎng)格圖案中。
所述方法還可包括:當(dāng)選擇性地沒有應(yīng)用模式時,通過基于所述多個屏幕像素的未修改的位置來分別映射圖像的像素的位置來確定采樣點的各自的位置。
所述方法還可包括獲得顯示器的多個屏幕像素的分辨率的信息,所述分辨率限定多個屏幕像素的位置,所述各自的位置的確定還可包括:基于分辨率的信息將多個屏幕像素中的屏幕像素的位置轉(zhuǎn)換為基于模式的對應(yīng)的采樣點的位置;將圖像的像素的位置映射到對應(yīng)的采樣點的位置。
所述各自的位置的確定可以是由所述一個或更多個處理裝置實現(xiàn)的可編程階段,所述一個或更多個處理裝置處理用于改變和定義模式的在多個模式類型中的模式類型的著色器源代碼。
所述多個模式類型中的至少一個可以是由用戶交互定義的模式,使用電子裝置的用戶交互實現(xiàn)圖形管線方法,識別要修改的圖像的用戶選擇的點或區(qū)域。
多個模式類型中的至少一個可以是非線性模式。
多個模式類型中的至少一個可以是包括在模式中的多個定義的位置或點之間變化的間隔的模式。這里,根據(jù)在著色器源代碼中提出的預(yù)設(shè)算法可將多個定義的位置或點定義為在它們之間具有變化的間隔。
各自的位置的確定可包括:當(dāng)確定啟用多重采樣時,針對一個屏幕像素確定兩個或更多個采樣點的位置;當(dāng)確定禁用多重采樣時,針對所述一個屏幕像素確定單個采樣點的位置,當(dāng)確定啟用多重采樣時,與多個屏幕像素中的每一個的位置被設(shè)置為按模式進(jìn)行修改的程度成比例地布置針對每個屏幕像素確定的相應(yīng)的兩個或更多個采樣點,使得渲染圖像是畸變圖像。
各自的位置的確定可以是在執(zhí)行像素的產(chǎn)生的圖形管線的光柵化階段的操作之前與圖形管線的頂點著色階段、剪切階段和投影階段的操作并行地執(zhí)行。
像素的產(chǎn)生可包括:基于四叉樹算法通過從采樣點的確定的各自的位置的選擇的一個或更多個子集中搜索與所述圖元疊置的采樣點的位置來確定采樣點的位置,所述四叉樹算法基于集的采樣點分別所屬的視口的區(qū)域反復(fù)地調(diào)用將采樣點的所述集細(xì)分為更小的子集的操作。
各自位置的確定還可包括根據(jù)四叉樹算法以四叉樹格式將確定的各自位置存儲在存儲器,像素的產(chǎn)生還可包括從存儲器中選擇性地讀取僅僅與所述一個或多個子集對應(yīng)的選擇的采樣點的位置并搜索與所述圖元重疊的所述一個或多個子集的采樣點的讀取的位置,所述一個或多個子集被確定為表現(xiàn)與所述圖元至少部分地疊置的區(qū)域。
所述各自的位置的確定可包括:當(dāng)針對屏幕像素的不同顏色分量確定各自的采樣點的位置時,通過分別施加不同的偏移來針對屏幕像素的不同的顏色分量確定各自的采樣點的位置。
當(dāng)圖形管線是用于基于圖塊的渲染的圖形管線時,可在圖塊像素組合操作的單個通道中執(zhí)行各自的位置的確定的步驟。
一個或多個實施例可包括:非暫時性處理器-可讀記錄介質(zhì),所述介質(zhì)包括計算機(jī)可讀代碼以控制至少一個處理裝置來實現(xiàn)這里描述的一個或多個實施例。
一個或多個實施例包括一種圖形管線設(shè)備,所述設(shè)備包括:著色器,被配置為通過針對多個屏幕像素中的每一個基于設(shè)置的模式確定采樣點的位置,來針對顯示器的多個屏幕像素確定采樣點的各自的位置,以修改待渲染的圖像;光柵化器,被配置為在采樣點中的被確定為與被設(shè)置為將要被光柵化的圖元疊置的采樣點的確定的位置上產(chǎn)生基于圖像的并與設(shè)置的圖元對應(yīng)的像素,并輸出產(chǎn)生的像素以渲染圖像。
圖形管線設(shè)備可以是電子裝置,所述電子裝置還包括顯示器和包括著色器和光柵化器的圖形處理裝置,而且光柵化器可產(chǎn)生包括對應(yīng)于圖元的產(chǎn)生的像素的多個像素以渲染圖像和輸出多個產(chǎn)生的像素以在顯示器上顯示渲染圖像,所述圖像是根據(jù)模式進(jìn)行畸變的。
設(shè)備還可包括存儲器,而且光柵化器可通過將多個像素存儲在存儲器中輸出多個像素,以在顯示器上顯示渲染圖像。
所述模式可以是用于將畸變施加到圖像的畸變模式,使得渲染的圖像是畸變圖像。
著色器可基于多個屏幕像素的每個修改的位置的各自的中心位置確定采樣點的各自的位置,所述多個屏幕像素可被布置在等距離或重復(fù)的網(wǎng)格圖案中。
著色器還可被配置為當(dāng)未選擇性地施加模式時,基于未修改的屏幕像素的位置,通過圖像的各自的映射的像素位置確定采樣點的各自位置。
著色器還可被配置為獲取顯示器的多個屏幕像素的分辨率的信息,所述分辨率限定多個屏幕像素的位置,在所述各自的位置的確定中,著色器可基于分辨率的信息將多個屏幕像素中的屏幕像素的位置轉(zhuǎn)換為基于模式的對應(yīng)的采樣點的位置,并將圖像的像素的位置映射到對應(yīng)的采樣點的位置。
著色器可被配置為圖形處理裝置的可編程著色器階段,所述圖形處理裝置被配置為處理用于改變和定義模式的多種模式類型中的模式類型的著色器源代碼。
所述多個模式類型中的至少一個可以是由用戶交互定義的模式,使用電子裝置的包括圖形管線設(shè)備的用戶接口,識別要修改的圖像的用戶選擇的點或區(qū)域。
多個模式類型中的至少一個可以是非線性模式。
多個模式類型中的至少一個可以是包括在模式中的多個定義的位置或點之間變化的間隔的模式。這里,根據(jù)在著色器源代碼中提出的預(yù)設(shè)算法可將多個定義的位置或點定義為在它們之間具有變化的間隔。
著色器可被配置為當(dāng)確定啟用多重采樣時,針對一個屏幕像素確定兩個或更多個采樣點的位置,并被配置為當(dāng)確定禁用多重采樣時,針對所述一個屏幕像素確定單個采樣點的位置,當(dāng)確定啟用多重采樣時,與多個屏幕像素中的每一個的位置被設(shè)置為按模式進(jìn)行修改的程度成比例地布置針對每個屏幕像素確定的相應(yīng)的兩個或更多個采樣點,使得渲染圖像是畸變圖像。
著色器可在光柵化器執(zhí)行產(chǎn)生的像素的光柵化之前將各自位置確定為產(chǎn)生的像素的輸出以渲染圖像。
在像素的產(chǎn)生中,光柵化器可基于四叉樹算法通過從采樣點的確定的位置的選擇的一個或更多個子集中搜索與所述圖元疊置的采樣點的位置來確定采樣點的位置,所述四叉樹算法基于集的采樣點分別所屬的視口的區(qū)域反復(fù)地調(diào)用將采樣點的所述集細(xì)分為更小的子集的操作。
設(shè)備還可包括存儲器,而且在各自位置的確定中,著色器還可被配置為根據(jù)四叉樹算法以四叉樹格式將確定的各自位置存儲在存儲器,在像素的產(chǎn)生中,光柵化器還可被配置為從存儲器中選擇性地讀取僅僅與所述一個或多個子集對應(yīng)的選擇的采樣點的位置并且還可被配置為搜索與所述圖元重疊的所述一個或多個子集的采樣點的讀取的位置,所述一個或多個子集被確定為表現(xiàn)與所述圖元至少部分地疊置的區(qū)域。
在各自位置的確定中,當(dāng)針對屏幕像素的不同顏色分量確定各自的采樣點的位置時,著色器可通過選擇性地施加不同的偏移來針對屏幕像素的不同顏色分量確定各自采樣點的位置。
一個或多個實施例包括一種圖形管線設(shè)備,所述設(shè)備包括:著色器,被配置為基于設(shè)置的畸變模式確定采樣點,所述采樣點被確定以渲染圖像;頂點著色器,被配置為在三維空間中針對頂點確定位置,以用于圖像的渲染;光柵化器,被配置為使用確定的采樣點產(chǎn)生用于具有畸變的圖像的渲染的像素,所述畸變由設(shè)置的畸變模式定義;渲染器,用于使用產(chǎn)生的像素輸出具有畸變的圖像;其中,使用操作著色器、頂點著色器和光柵化器的單個通道執(zhí)行具有畸變的圖像的渲染。
圖形管線設(shè)備可以是圖形處理單元(GPU)。
著色器的操作的單個通道可與操作頂點著色器的單個通道并行地被執(zhí)行。
設(shè)備還可包括:像素著色器,被配置為確定用于產(chǎn)生的圖像像素的像素顏色值,其中,使用操作像素著色器的單個通道執(zhí)行具有畸變的圖像的渲染,在著色器的單通道操作之后執(zhí)行圖像的渲染。
另外的方面將在下面的描述中部分地闡述,部分地將通過所述描述而變得明顯,或者可通過實施例的實施來了解。
附圖說明
通過下面結(jié)合附圖對實施例進(jìn)行的描述,這些和/或其他方面將會變得更加清楚和更加容易理解,其中:
圖1是根據(jù)一個或多個實施例的描述電子裝置的示圖;
圖2A至2D是根據(jù)一個或多個實施例的描述畸變的類型的圖示;
圖3是根據(jù)一個或多個實施例的描述利用畸變圖像的頭戴式顯示器系統(tǒng)的示圖;
圖4A是描述在一般的圖形管線中使用采樣點確定圖像的像素的方法的示圖;
圖4B是根據(jù)一個或多個實施例的描述在圖形管線中使用采樣點確定圖像的像素的方法的示圖;
圖5是示出根據(jù)一個或多個實施例的圖形處理單元(GPU)的框圖;
圖6是根據(jù)一個或多個實施例的用于渲染圖像的圖形管線的流程圖;
圖7是根據(jù)一個或多個實施例的描述基于畸變模式的與屏幕像素對應(yīng)的采樣點的位置的示圖;
圖8A是根據(jù)一個或多個實施例的描述確定與未施加畸變模式時的屏幕像素對應(yīng)的采樣點的方法的示圖;
圖8B是根據(jù)一個或多個實施例的描述基于施加的畸變模式確定與屏幕像素對應(yīng)的采樣點的方法的示圖;
圖9是根據(jù)一個或多個實施例的描述未施加畸變時采樣點的位置與施加畸變時采樣點的位置之間的比較的示圖;
圖10是根據(jù)一個或多個實施例的描述使用由采樣著色器確定的采樣點為像素產(chǎn)生執(zhí)行光柵化的方法的示圖;
圖11是根據(jù)一個或多個實施例的描述用于基于桶形畸變模式確定采樣點的著色器源代碼的示例的示圖;
圖12是根據(jù)一個或多個實施例的描述在光柵化器中尋找與視口上的圖元重疊的采樣點的方法的示圖;
圖13是根據(jù)一個或多個實施例的描述在光柵化器中尋找與視口上的圖元重疊的采樣點的方法的示圖;
圖14是根據(jù)一個或多個實施例的描述在頭戴式顯示器(HMD)系統(tǒng)上基于枕形畸變模式使用采樣點顯示渲染的畸變圖像的方法的圖示;
圖15A和15B是根據(jù)兩個或更多個實施例的描述單次采樣和多重采樣的示圖;
圖16是根據(jù)一個或多個實施例的描述確定用于屏幕像素的每種顏色分量的不同的采樣點的位置的過程的示圖;
圖17是根據(jù)一個或多個實施例的描述存在未使用的區(qū)域時基于施加的畸變模式渲染畸變圖像的方法的圖示;
圖18是根據(jù)一個或多個實施例的描述由采樣著色器確定用于抖動的采樣點的方法的示圖;
圖19是根據(jù)一個或多個實施例的描述在圖形管線用于基于圖塊的渲染的情況下利用采樣著色的方法的示圖;
圖20是根據(jù)一個或多個實施例的具有用于渲染帶有畸變的圖像的圖形管線的設(shè)備的框圖;
圖21是根據(jù)一個或多個實施例的用于渲染帶有畸變的圖像的圖形管線方法的流程圖。
具體實施方式
提供下面具體的描述,以幫助讀者獲得對這里描述的方法、設(shè)備和/或系統(tǒng)的全面的理解。然而,這里描述的方法、設(shè)備和/或系統(tǒng)的各種變形、修改和等同對本領(lǐng)域普通技術(shù)人員來說將是顯而易見的。這里描述的操作順序僅僅是示例,并不限于本文所述的這些,而是如對本領(lǐng)域普通技術(shù)人員來說將顯而易見的是可被改變的,除了以一定順序必然發(fā)生的操作以外。此外,為了更加清楚和簡明起見,對本領(lǐng)域普通技術(shù)人員眾所周知的功能和結(jié)構(gòu)的描述可被省略。
這里描述的特征可以以不同的形式體現(xiàn),并不一定被解釋為局限于這里所描述的示例。
可對描述的實施例進(jìn)行各種變形和修改,其中一些將在附圖和詳細(xì)的描述中進(jìn)行詳細(xì)說明。然而,應(yīng)當(dāng)理解,這些實施例不被解釋為限于示出的形式,還包括在本公開的思路和技術(shù)范圍內(nèi)的所有變化、等價物和替換。
這里使用的術(shù)語僅僅是為了解釋特定的實施例,因此不意味著限定。單數(shù)表達(dá)包括復(fù)數(shù)表達(dá),除非當(dāng)兩個表達(dá)在上下文中彼此不同。例如,如這里所使用,單數(shù)形式“一”、“一個”和“這個”意圖在于同樣包括復(fù)數(shù)形式,除非上下文另外清楚地指出。這里提供的任何和所有的示例以及示例性語言(例如,“諸如”)的使用意圖僅僅在于更好地說明下面的概念,而不是不構(gòu)成對本公開的范圍的限定。在這里,術(shù)語“包括”和“具有”意圖同樣在于指示在說明書上公開的特征、數(shù)字、操作、組件和元件及其組合存在。應(yīng)理解,術(shù)語“包括”和“具有”不是為了排除一個或多個其他特征、數(shù)字、操作、組件和元件及其組合和更多可能的存在。此外,為了描述的方面,使用了包括常用數(shù)字(諸如,“第一”和“第二”等)的術(shù)語,以描述和區(qū)分各種元件,但元件不應(yīng)該由這些術(shù)語限定,而且其意圖不在于代表想要的序列或順序,除非上下文有不同的含義。
鑒于本公開,除非另外被定義,否則包括這里所使用的技術(shù)和科學(xué)術(shù)語的所有術(shù)語具有與被本發(fā)明所屬領(lǐng)域的普通技術(shù)人員普遍理解的含義相同的含義。還將理解,術(shù)語(諸如那些在普遍使用的字典中所定義的術(shù)語)應(yīng)該被解釋為具有與他們在相關(guān)領(lǐng)域和本公開的語境中的含義一致的含義,而且將不會被解釋為理想化或過于形式化的意義,除非此處明確這樣定義。
以下,將參照附圖對某些實施例進(jìn)行更加詳細(xì)地說明,其中相同的參考標(biāo)記至始至終指代相同的元件。將對彼此相似或相同的組件提供相同的參考標(biāo)記,并將省略他們的詳細(xì)描述。當(dāng)在理解本公開之后確定相關(guān)或公知的功能和配置的具體描述可能會使本公開的實施例的目的變得不必要的模糊和冗長時,可省略這樣的詳細(xì)描述。
圖1是描述根據(jù)一個或多個實施例的電子裝置的示圖。
參照圖1,電子裝置1可包括:GPU 10,中心處理器(CPU)20,存儲器30,顯示器40,總線50,例如注意到還可包括除了示出的元件之外的元件。
電子裝置1可包括例如臺式電腦、筆記本電腦、智能電話、個人數(shù)字助理(PDA)、便攜式媒體播放器、視頻游戲控制臺、電視機(jī)頂盒、平板設(shè)備、電子書閱讀器、可穿戴設(shè)備,HMD裝置等,但實施例不限于此。換言之,可在電子設(shè)備1的范圍內(nèi)包括作為被配置為執(zhí)行或控制圖形處理操作(例如,用于輸出內(nèi)容的操作或在顯示器上顯示內(nèi)容的操作)的裝置的各種裝置,諸如電子裝置1的顯示器40。
CPU 20可以是用于控制電子裝置1的整體操作和功能的硬件。例如,CPU 20可驅(qū)動操作系統(tǒng)(OS),為GPU 10調(diào)用圖形API,并執(zhí)行GPU 10的驅(qū)動器。此外,CPU 20可執(zhí)行各種存儲在存儲器30中的應(yīng)用程序,例如網(wǎng)絡(luò)瀏覽應(yīng)用程序,游戲應(yīng)用程序,視頻應(yīng)用程序等。
作為用于操作示例圖形管線100的裝置,GPU 10可與圖形專用處理器對應(yīng)。換言之,GPU 10可以是實現(xiàn)為操作用于將三維圖像上的三維對象渲染成二維圖像以便顯示的三維圖形管線的硬件。例如,GPU 10可執(zhí)行各種功能(諸如著色,混合,和照明)以及各種用于產(chǎn)生將被顯示的像素的像素值的功能。根據(jù)實施例,GPU 10還可對用于基于圖塊的渲染(TBR)的基于圖塊的圖形管線進(jìn)行操作或者可選擇的操作。
參照圖1,將由GPU 10實現(xiàn)的圖形管線100可與由圖形APIs(僅作為示例,諸如各種版本的DirectX和開放式圖形庫(OpenGL)API)所定義的圖形管線中的一個對應(yīng)。換言之,根據(jù)不同實施例的這種圖形管線100的一個或多個不限于一個版本和任何一個API類型,但可通過各種APIs實現(xiàn)。
作為用于存儲將在電子裝置1內(nèi)被處理的各種類型的數(shù)據(jù)的硬件,例如,根據(jù)實施例,存儲器30可存儲在GPU 10和/或CPU 20中被處理的數(shù)據(jù)和將要被處理的數(shù)據(jù),而且可有多個存儲器30。此外,存儲器30可存儲將由GPU 10和/或CPU 20驅(qū)動的應(yīng)用程序和驅(qū)動程序等。存儲器30可包括隨機(jī)存取存儲器(RAM)(諸如動態(tài)RAM(DRAM)和/或靜態(tài)存儲器(SRAM)),只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM),光盤只讀存儲器(CD-ROM)、藍(lán)光或其他光盤存儲器,硬盤驅(qū)動器(HDD),固態(tài)硬盤(SSD),或閃存的任何一種和任意組合。此外,存儲器30可代表能由電子裝置1訪問的外部存儲裝置。
顯示器40是用于顯示由GPU 10處理的圖像的硬件。例如,包括由GPU 10渲染的圖像以便包括畸變的顯示器40可顯示由GPU 10渲染的圖像。顯示器40包括具有預(yù)定分辨率的屏幕像素,而且GPU 10通常會對圖像進(jìn)行渲染使其適用于那種分辨率。顯示器40可由各種類型的顯示面板(僅作為示例,諸如液晶顯示器(LCD)和有機(jī)發(fā)光二極管(OLED))實現(xiàn)。
總線50用作用于連接硬件部分的硬件,使得可以在電子裝置1內(nèi)的數(shù)個硬件之間發(fā)送和接收數(shù)據(jù)。例如,總線50可包括各種類型的總線(諸如外設(shè)組件互連標(biāo)準(zhǔn)(PCI)總線和PCI Express總線)。
具體地,電子裝置1可對用于修改原始圖像和渲染畸變圖像的圖形管線100進(jìn)行操作。在實施例中,電子裝置1可被配置為使用戶能夠選擇畸變,或者可基于與電子裝置1的用戶交互選擇性地將畸變施加到圖像上,并因此對圖形管線100進(jìn)行操作以使相應(yīng)的圖像畸變并渲染相應(yīng)的圖像。此外,在一個或多個實施例中,施加的畸變可以是畸變或畸變模式(distortion pattern,畸變樣式),所述畸變模式反轉(zhuǎn)在輸入圖像中存在的畸變,例如,僅作為示例,在圖像捕獲透鏡有瑕疵或已知圖像捕獲透鏡以特定方式使捕獲的場景畸變。將參照圖2A至2D對示例畸變類型進(jìn)行描述。
圖2A至D是根據(jù)一個或多個實施例的描述畸變類型的示圖。
參照圖2A,畸變圖像215可由于具有伸展形狀的桶形畸變發(fā)生,在所述桶形畸變中,使得原始圖像210的中心像素和其他像素之間的距離相對于原始圖像210的中心像素逐漸增加。例如,桶形畸變可以是使得原始圖像210看似是由魚眼透鏡捕獲的畸變效應(yīng)。當(dāng)然,如果已知原始圖像是被這樣的魚眼透鏡捕獲,那么變形的桶形畸變可使原始圖像畸變,使得結(jié)果的畸變圖像實際上出現(xiàn)更少的畸變。參照圖2B,與桶形畸變相對照,畸變圖像215可由于具有收縮形狀的枕形畸變發(fā)生,在所述枕形畸變中,使得原始圖像210的中心像素和其他像素之間的距離相對于原始圖像210的中心像素逐漸減少。另一方面,盡管未示出,但是由桶形畸變和枕形畸變混合的胡子畸變(mustache distortion)可發(fā)生或被引起發(fā)生。
參照圖2C,示出了基于示例用戶的操作的畸變圖像235。在一個或多個實施例中,當(dāng)用戶例如使用電子裝置的用戶界面隨意地操作或選擇想要在原始圖像230上修改的點的位置時,可產(chǎn)生畸變圖像235。換言之,與圖2A和2B不同,根據(jù)用戶的喜好可以以各種形狀非線性地產(chǎn)生畸變圖像235。參照圖2D,示出了將具有16:9的分辨率的原始圖像240改變?yōu)榫哂?:3的分辨率的畸變圖像245的示例。此時,由分辨率變化引起的畸變可以是由非線性畸變模式引起的原始圖像240的像素網(wǎng)格243到畸變網(wǎng)格247的變化。與圖2C類似,圖2D的畸變圖像245可以是當(dāng)用戶隨意地指定需要修改的區(qū)域時的畸變圖像。根據(jù)實施例,除了展示的圖2A至2D的畸變以外,還存在(僅作為示例)其他類型的畸變,所述其他類型的畸變可被應(yīng)用于圖像,以例如通過畸變模式或算法產(chǎn)生具有期望的畸變的或減小現(xiàn)有畸變的畸變圖像。
僅作為示例,在一個或多個實施例中描述的畸變圖像的這樣的類型可包括根據(jù)用戶的操作的非線性畸變模式和線性畸變模式。換言之,將在實施例中進(jìn)行描述的畸變圖像不限于任何一個圖像。例如,圖1的電子裝置1(具體地,GPU 10)可根據(jù)各種畸變模式將原始圖像渲染為各自的畸變圖像。
圖3是根據(jù)一個或多個實施例的描述采用畸變圖像的頭戴式顯示器系統(tǒng)的示圖。
參照圖3并僅作為示例,畸變圖像215可被渲染以具有上述桶形畸變并在HMD系統(tǒng)300中被使用。HMD系統(tǒng)300是一種圖像顯示系統(tǒng),將所述系統(tǒng)戴在他/她的頭上(諸如戴一副眼鏡)的用戶可通過所述圖像顯示系統(tǒng)立即觀看他/她眼前的圖像。HMD系統(tǒng)300可以是HMD裝置,所述HMD裝置包括示出的透鏡320和顯示面板330,或者它們可以是配對顯示面板330和透鏡320的系統(tǒng)的獨立裝置組件。用戶可通過透鏡320查看在顯示面板330上顯示的屏幕??煽刂骑@示面板330來顯示例如被修改為具有桶形畸變的一對畸變圖像340。然而,由于透鏡320預(yù)定的畸變特征,實際上通過透鏡320將畸變圖像310觀察(或看起來)為非畸變圖像。
通過在圖1的電子裝置1(具體地,GPU 10)中處理的圖形管線100渲染的畸變圖像例如可用于上述HMD系統(tǒng)300,但實施例不限于此。僅作為這樣的HMD系統(tǒng)300的示例,在實施例中,電子裝置1可以代表HMD系統(tǒng)300的顯示面板330,使得這樣的HMD系統(tǒng)/裝置實施例可產(chǎn)生與透鏡320的特征一致的畸變圖像以將想要的虛擬體驗提供給用戶。
圖4A是描述在一般的圖形管線中使用采樣點來確定圖像的像素的方法的示圖。
參照圖4A,可使用在視口上的采樣點402的位置來將三角形對象401繪制為圖像像素。在視口上的采樣點402的位置與將在顯示屏上進(jìn)行渲染的圖像的特定像素403有預(yù)定的關(guān)系,即根據(jù)圖形管線的固定1:1映射。此外,根據(jù)與圖形管線的固定操作對應(yīng)的光柵化(固定的1:1映射),使用在視口上的采樣點402的位置上的對象信息(或圖元信息)來執(zhí)行光柵化相應(yīng)的像素403的方法。
因此,在圖4A的一般的圖形管線中,采樣點402的位置與顯示屏上的待渲染的圖像的像素403具有固定映射。此外,由于這種方法,當(dāng)期望畸變圖像時,一般的圖形管線必須實現(xiàn)渲染管線的兩個通道。第一通道在畸變前渲染正常圖像。然后,在第二通道中,以覆蓋整個屏幕的多邊形網(wǎng)格上的紋理對多邊形網(wǎng)格進(jìn)行渲染。將來自第一通道的渲染的圖像用作第二通道上的紋理。通過在第二通道期間調(diào)節(jié)多邊形網(wǎng)格的頂點位置,由第二通道施加畸變。
因此,即使當(dāng)期望畸變圖像時,一般的圖形管線也仍然使用該固定1:1映射執(zhí)行渲染,以渲染畸變圖像,因為期望采樣點402相對于視口和屏幕的位置一直是一樣的。此外,一般的圖形管線必須執(zhí)行管線處理的兩個通道,渲染正常圖像的第一通道和將正常圖像應(yīng)用為紋理的第二通道,其中,紋理的頂點之后被移動,以施加畸變。
圖4B是根據(jù)一個或多個實施例的描述在圖形管線中使用采樣點來確定圖像的像素的方法的示圖。
參照圖4B,在視口上的采樣點412是位于三角形對象411內(nèi)。盡管采樣點412是位于與圖4A的采樣點402不同的位置,但是實際上可將與采樣點412對應(yīng)的最終渲染的像素413的位置映射到與圖4A的像素403相同的位置。因此,當(dāng)依照任何被施加到采樣點的位置的映射的相應(yīng)的畸變模式將三角形對象411改變?yōu)槿切螌ο?14時,位于三角形對象411內(nèi)的采樣點412的位置可對應(yīng)于在畸變的三角形對象414內(nèi)的任意一個像素413的位置,而在圖4A中像素403的相似位置被渲染到屏幕上的三角形對象的外部。在采樣點412和像素413之間的上述映射可由采樣著色器410例如在圖1的圖形管線100內(nèi)執(zhí)行。
如在圖4A中所示,在一般的圖形管線中,采樣點402的位置與像素403的位置之間的映射關(guān)系是根據(jù)固定映射固定的。因此,利用一般的圖形管線,即使三角形對象401畸變,也不能改變像素403的位置,由此需要參照圖4A描述的一般圖形管線在不改變采樣點402和像素403之間的映射關(guān)系的情況下處理在一般的圖形管線內(nèi)不同階段或通道中的期望的畸變。
然而,如在圖4B中所演示和在一個或多個實施例中,圖形管線100可僅僅包含采樣著色器410(替代實現(xiàn)圖4A的固定映射),以例如在單個階段或通道中渲染畸變圖像。
圖5是示出根據(jù)一個或多個實施例的GPU(諸如圖1的GPU 10)的框圖。這里,盡管將參照圖1的GPU 10對圖5進(jìn)行解釋,但是實施例不限于此,替代的實施方式和應(yīng)用也是可用的。
參照圖5,GPU 10可包括頂點著色器110、鑲嵌控制著色器(tessellation control shader,細(xì)分控制著色器)121、鑲嵌圖元發(fā)生器123、鑲嵌評估著色器125、幾何著色器127、剪切器130、投影器140、采樣著色器150、光柵化器160、像素著色器170和光柵化操作器180,以例如實現(xiàn)圖形管線100。此外,GPU 10還可包括控制器191和緩沖器192。用于實現(xiàn)圖形管線100的上述組件中的每個或者任何一個可由在非暫時性介質(zhì)上/中呈現(xiàn)的程序邏輯或軟件二者擇一地實現(xiàn),以控制至少一個處理裝置來實現(xiàn)同樣的組件。此外,僅作為示例,用于實現(xiàn)圖形管線100的上述組件可由在GPU 10內(nèi)提供的子處理裝置(或處理器核)或一個處理裝置實現(xiàn)。換言之,實現(xiàn)用于實現(xiàn)圖形管線100的上述組件的形式不限于任何一種硬件或者非暫時性介質(zhì)方法。
此外,盡管圖形管線100的某些組件的名稱被用于描述(例如,將在下面進(jìn)一步描述和根據(jù)實施例的)至少一個基本操作,但是本領(lǐng)域技術(shù)人員將理解,組件的名稱不應(yīng)被視為限制任何特征和實施例。在這個方面,僅僅為了方便描述,在OpenGL 4.5中定義的組件的某些名稱也被用作組件的名稱來實現(xiàn)在GPU 10中的圖形管線100。再次注意到,這類組件的名稱不應(yīng)被視為將實施例限制到API的任何特定標(biāo)準(zhǔn)或類型。換言之,在一個或多個實施例中,在GPU 10中實現(xiàn)圖形管線100的組件可對應(yīng)于在其他類型的API(諸如其他版本的OpenGL、微軟的DirectX(DX)和計算統(tǒng)一設(shè)備架構(gòu)(CUDA))中定義的類似組件。例如,本領(lǐng)域技術(shù)人員將理解,鑲嵌評估著色器125可對應(yīng)于在DX中使用的域著色器,在GPU 10內(nèi)的其他組件可類似地對應(yīng)于在其他API(諸如DX和CUDA)中使用的組件。此外,根據(jù)實施例,在GPU 10中可包括或者在GPU 10中可不包括圖5中的由虛線指示的組件(即鑲嵌控制著色器121、鑲嵌圖元產(chǎn)生器123、鑲嵌評估著色器125和幾何著色器127)。
圖6是根據(jù)一個或多個實施例的渲染圖像的圖形管線的流程圖。以下,僅作為示例,將參照圖5和圖6對將在GPU 10中操作的圖形管線100進(jìn)行描述。這里,盡管將參照圖1的GPU 10對圖5和圖6進(jìn)行解釋,但是實施例不限于此,可使用其他實施方式和應(yīng)用。
在操作610中,GPU 10獲得或被提供用于顯示器(諸如圖1的顯示面板40)的屏幕像素并被存儲在存儲器(諸如,圖1的存儲器30)中的場景信息。用于屏幕像素的場景信息可包括關(guān)于顯示器的屏幕分辨率和屏幕像素的矩陣位置的信息等。此外,GPU 10也可獲得或被提供關(guān)于存儲在存儲器中的構(gòu)成對象的頂點的場景信息。
在操作620中,頂點著色器110可使用場景信息中包括的與頂點的位置和屬性有關(guān)的信息等來確定每個頂點在三維空間中的坐標(biāo)。
在操作630中,剪切器130可在從頂點著色器110輸出的頂點構(gòu)成的圖元中剪掉和剔除與被包括在相機(jī)的視場(即視口)中的圖元不同的其他圖元。屬于視場的圖元的位置可由規(guī)格化設(shè)備坐標(biāo)(NDC)系統(tǒng)中的坐標(biāo)指定。
在操作640中,投影器140可將位于NDC系統(tǒng)上的圖元的坐標(biāo)轉(zhuǎn)換為屏幕空間上的屏幕坐標(biāo)。
在操作651中,采樣著色器150也可獲取或被提供關(guān)于顯示器的屏幕像素的信息。例如,采樣著色器150可獲取屏幕分辨率和與屏幕像素的矩陣位置有關(guān)的屏幕像素的場景信息等。
此后,在操作652中,采樣著色器150基于變化的圖案或算法針對屏幕像素中每一個屏幕像素確定一個或多個采樣點的位置,以例如表示將被渲染的圖像。例如,采樣著色器150可基于屏幕像素中的每一個的畸變模式確定一個或多個采樣點的位置,以使原始圖像畸變。換言之,采樣著色器150可例如根據(jù)屏幕分辨率確定用于一定數(shù)量的屏幕像素中的每一個的各自的采樣點。這里,僅作為示例,畸變模式可參照圖2A至2D施加上述畸變中的任何一個或可被設(shè)計為補償相同的畸變,再次注意到,也可施加或校正替代的畸變。
采樣著色器150可基于修改的屏幕像素中的每一個的中心位置(即基于施加的畸變模式的屏幕像素的中心位置)確定一個或多個采樣點的位置。因此,采樣著色器150基于畸變模式將例如依賴于顯示器的分辨率的屏幕像素的位置轉(zhuǎn)換為相應(yīng)的采樣點的位置。例如,當(dāng)采樣著色器150的輸入具有“pixelLocation.x,pixelLocation.y”(pixelLocation.x和pixelLocation.y是任意特定的屏幕像素的位置坐標(biāo))的值時,采樣著色器150的輸出可包括“sampleLocation.x,sampleLocation.y,”(sampleLocation.x和sampleLocation.y是特定屏幕像素的對應(yīng)采樣點的位置坐標(biāo))的值。換言之,采樣著色器150可通過限定或表示期望的畸變模式的算法執(zhí)行將位置“pixelLocation.x,pixelLocation.y,”轉(zhuǎn)換或映射為位置“sampleLocation.x,sampleLocation.y”的操作。限定或表示期望畸變模式的算法可以是實現(xiàn)變化的線性映射(諸如,用于桶形畸變和枕形畸變等的映射)的算法,或者是例如根據(jù)用戶的任意操作實現(xiàn)非線性映射的算法。
此外,為了實現(xiàn)一個或多個實施例,在圖形管線100內(nèi)的階段或組件中,采樣著色器150可以是可編程著色器,所述可編程著色器被配置為處理著色器源代碼。例如,可將著色器源代碼設(shè)計為使用戶能夠自由地改變和限定線性畸變和/或非線性畸變的類型,其中可根據(jù)用戶的設(shè)置確定采樣點的位置。因此,操作651的采樣著色可以是圖形管線100的可編程階段。
相應(yīng)地,在操作652中,采樣著色器150可基于期望的畸變將用于待渲染的畸變圖像的像素的位置映射到采樣點的位置??蓪⒂糜诖秩镜幕儓D像的像素的位置和基于期望的畸變的采樣點的位置之間的映射關(guān)系以例如查找表的形式存儲在緩沖器192中。
在一個或多個實施例中,將要由采樣著色器150執(zhí)行的操作651和操作652可與操作620至640并行地執(zhí)行。換言之,由采樣著色器150執(zhí)行的操作651和操作652是在操作661的光柵化階段之前執(zhí)行。光柵化器160可獲得在操作651和操作652中產(chǎn)生的信息。
回到操作640,當(dāng)已經(jīng)完成操作640時,投影器140將與具有視口上的屏幕坐標(biāo)的圖元有關(guān)的信息輸出到光柵化器160。
在操作661中,光柵化器160確定與處于與待光柵化的圖元重疊的采樣點的映射位置的圖元對應(yīng)的像素,所述采樣點是由采樣著色器150確定的采樣點中的采樣點。首先,光柵化器160可從采樣點的坐標(biāo)中尋找組成圖元的頂點的坐標(biāo)內(nèi)的采樣點。然后,光柵化器160可例如通過參照存儲在緩沖器192中的查找表確定待渲染的畸變圖像的像素,所述像素對應(yīng)于與圖元重疊的各自發(fā)現(xiàn)的采樣點。
在操作662中,光柵化器160確定用于確定的像素的屬性值。因此,光柵化器160可產(chǎn)生用于每個采樣點的圖像像素。
在操作670中,像素著色器170確定用于產(chǎn)生的圖像像素的像素顏色值,來對畸變圖像的像素進(jìn)行著色。
在操作680中,光柵化操作器180針對每個像素執(zhí)行任意附加的預(yù)定義的像素操作(諸如,漏印板(stencil),z測試和混合等)。
在操作690中,當(dāng)完成了光柵化操作階段(操作680)時,GPU 10完成畸變圖像的渲染并將渲染的畸變圖像輸出到顯示器40。
如上所述,在實施例中,畸變圖像的渲染可以在圖形管線100的一個通道內(nèi)執(zhí)行。因此,在一個或多個實施例中,由于用于確定采樣點的采樣著色操作,不單獨需要用于渲染畸變圖像的額外通道,所以與需要額外的通道來渲染這樣的畸變圖像的一般的圖形管線相比,可減少GPU 10的計算量和性能劣化。
在實施例中,控制器191可控制圖形管線100的組件110至180以及緩沖器192的各自和/或整個的操作。
緩沖器192可存儲在GPU 10內(nèi)待處理的信息(例如,關(guān)于采樣點的信息等)。此外,緩沖器192可從存儲器接收將要由GPU 10處理的信息(例如,場景信息和頂點信息等),并暫時存儲接收的信息。
在一個或多個實施例中,GPU也包括鑲嵌控制著色器121、鑲嵌圖元產(chǎn)生器123和鑲嵌評估著色器125,以用于圖元的鑲嵌。在一個或多個實施例中,GPU 10也可包括幾何著色器127以針對單個圖元產(chǎn)生一個或多個額外的輸出圖元。
圖7是根據(jù)一個或多個實施例的描述對應(yīng)于基于畸變模式的屏幕像素的采樣點的位置的示圖。
參照圖7,在該示例中,將假定畸變模式為枕形畸變。如上所述,枕形畸變可由圖像朝著中心逐漸減小的畸變模式施加。因此,采樣點的網(wǎng)格可以是與聚焦在中心的枕形畸變模式對應(yīng)的修改的形狀的網(wǎng)格,而不是對應(yīng)于屏幕像素710的網(wǎng)格圖案的規(guī)則網(wǎng)格圖案形狀的網(wǎng)格。例如,對于與上面討論的具有圖4A的一般的圖形管線的1:1固定對應(yīng)關(guān)系,采樣點的網(wǎng)格會反映例如具有與屏幕像素的中心對準(zhǔn)的每個采樣點的屏幕像素710。因此,可根據(jù)基本的枕形算法將對應(yīng)于特定像素715的采樣點725的位置確定為朝著視口720上的中心方向聚焦的任意位置。例如,采樣著色器(諸如圖5的采樣著色器150)可基于枕形畸變模式確定對應(yīng)于屏幕像素710的全部采樣點的映射位置。
圖8A是根據(jù)一個或多個實施例的描述確定對應(yīng)于未施加畸變模式時的屏幕像素的采樣點的方法的示圖。在下面,盡管可參照圖1、5和6的組件或操作對圖8A和8B的方面進(jìn)行解釋,但是實施例不限于此,而是可使用其他實施方式和應(yīng)用。
參照圖8A,當(dāng)未施加畸變模式時,可將對應(yīng)于特定屏幕像素的采樣點的位置確定為對應(yīng)于在視口上的屏幕像素的中心位置的位置。例如,可將對應(yīng)于屏幕像素2的采樣點SP2的位置確定為對應(yīng)于在視口上的屏幕像素2的區(qū)域的區(qū)域的中心位置。然而,諸如當(dāng)執(zhí)行多重采樣抗混疊(多重采樣反走樣)時,可根據(jù)圖形管線的設(shè)置(諸如圖5的圖形管線100)將對應(yīng)的采樣點的位置確定為該區(qū)域內(nèi)的距離該區(qū)域的中心位置(例如在屏幕像素的中心位置的地方)恒定的偏移量的位置。在實施例中,可可選擇地將對應(yīng)的采樣點的位置確定為該區(qū)域內(nèi)的由用戶隨意地設(shè)置的位置。換言之,盡管已經(jīng)描述了對應(yīng)的采樣點的位置對應(yīng)于屏幕像素的中心位置的情況,但是該描述是為了描述的方便,而實施例不限于此。在實施例中,當(dāng)未施加畸變時,采樣著色器(諸如圖5的采樣著色器150)可不操作或可只傳遞與各個屏幕像素的位置具有這樣的固定對應(yīng)性的采樣點位置。
圖8B是根據(jù)一個或多個實施例的描述基于施加的畸變模式確定對應(yīng)于屏幕像素的采樣點的方法的示圖。
參照圖8B,在該示例中,將畸變模式假定為枕形畸變。相應(yīng)地,如在圖8B中所示,將要修改網(wǎng)格圖案810的屏幕像素,以根據(jù)畸變模式(枕形畸變模式)產(chǎn)生畸變圖像820。因此,可將對應(yīng)于屏幕像素2的采樣點SP12的映射位置確定為從對應(yīng)于視口上的屏幕像素2的區(qū)域的區(qū)域的中心位置沿左上方向稍微地分離的位置或朝向左上方向映射的位置。此外,也可將對應(yīng)于屏幕像素4的采樣點SP14的映射位置確定為從對應(yīng)于視口上的屏幕像素4的區(qū)域的區(qū)域的中心位置沿左上方向稍微地分離的或朝向左上方向稍微地映射的位置。
換言之,采樣著色器(諸如圖5的采樣著色器150)可基于畸變模式通過在圖形管線(諸如圖5的圖形管線100)內(nèi)的采樣著色階段(例如,圖6的操作651)確定對應(yīng)于屏幕像素的采樣點(或采樣點的映射位置)。因此,與未施加畸變時相比,為了渲染畸變圖像,采樣著色器可將采樣點的位置不同地確定為反映畸變模式的位置。
圖9是根據(jù)一個或多個實施例的描述未施加畸變時的采樣點的位置與施加畸變時的采樣點的位置之間的比較的示圖。這里,盡管將參照圖5的組件對圖9的方面進(jìn)行解釋,但是實施例不限于此,而且可使用其他實施方式和應(yīng)用。
參照圖9,采樣點SP1、SP2、SP3和SP4的位置(諸如,在圖8A中所示)代表未施加畸變時的采樣點的位置。另一方面,采樣點SP11、SP12、SP13和SP14的位置代表施加畸變時由采樣著色器(諸如,圖5的采樣著色器150)確定的采樣點的映射位置。換言之,因為采樣點SP11、SP12、SP13和SP14的位置是基于畸變模式(枕形畸變模式)確定的,所以與采樣點SP1、SP2、SP3和SP4的位置相比,將位置確定為與視口上的對應(yīng)于屏幕像素的區(qū)域的中心位置稍微地分離。盡管已經(jīng)參照圖8B和9用枕形畸變模式的示例對采樣點的位置進(jìn)行了描述,但是實施例不限于此。即使在各種不同的畸變模式的情況下,也可以類似的方案來確定采樣點的位置。
圖10是根據(jù)一個或多個實施例的描述使用由采樣著色器確定的采樣點來對像素產(chǎn)生執(zhí)行光柵化的方法的示圖。這里,盡管將參照圖5的組件或操作對圖10的方面進(jìn)行解釋,但是實施例不限于一樣,而且可使用替代的實施方式和應(yīng)用。
參照圖10,由于畸變模式,具有在視口1010上示出的各自位置的所有采樣點的采樣網(wǎng)格可因此具有修改的或不同于規(guī)則網(wǎng)格形式的形式。當(dāng)視口1010上包括三角形圖元1011時,光柵化器(諸如,圖5的光柵化器160)可從像素產(chǎn)生可能需要的所有采樣點中確定僅僅一些與圖元1011疊置的采樣點1015。此后,光柵化器可基于關(guān)于存儲在緩沖器(諸如,圖5的緩沖器192)中的采樣點和像素之間的映射關(guān)系的信息在確定對應(yīng)于與圖元1011重疊的那些采樣點1015的像素1025的位置之后,執(zhí)行像素產(chǎn)生。由于像素1025在所有的圖像像素1020中的位置,可基于畸變模式相應(yīng)地以不同于圖元1011的三角形形式的形式繪制(或渲染)對象1021。
換言之,在一個或多個實施例中,圖形管線(諸如圖5的圖形管線100)可通過使用采樣著色器(諸如,圖5的采樣著色器150)基于如參照圖7、8B、9和10描述的畸變模式確定采樣點的位置來渲染畸變圖像。因此,可通過渲染位于基于采樣點的映射位置的像素位置的對象來渲染畸變圖像。
圖11是根據(jù)一個或多個實施例的描述用于基于桶形畸變模式確定采樣點的著色器源代碼的示例的示圖。這里,盡管將參照圖5的組件或操作對圖11的各方面進(jìn)行解釋,但是實施例不限于此,而是可使用其他實施方式和應(yīng)用。
參照在圖11中示出的著色器源代碼1120,代碼“in vec2 pix_pos;//NDC coordinate[-1,1]”可充當(dāng)指示采樣著色器(諸如圖5的采樣著色器150)的輸入的代碼,并指示屏幕像素在示例NDC系統(tǒng)上的位置pix_pos對應(yīng)于采樣著色器的輸入。作為指示采樣著色器的輸出的代碼,編碼“out vec2 sampling_pos;//NDC coordinate[-1,1]”可指示采樣點在NDC系統(tǒng)上的位置對應(yīng)于采樣著色器的輸出。
代碼“uniform float BarrelPower;vec2 Distort(vec2 p){float theta=atan(p.y,p.x);float radius=length(p);radius=pow(radius,BarrelPower);p.x=radius*cos(theta);p.y=radius*sin(theta);return p;}”可指示用于定義桶形畸變的操作。
代碼“void main(){float d=length(pix_pos,xy);if(d<1.0){sampling_pos=Distort(pix_pos);}else{discard();}”可指示限定僅將離視口上的中心的距離小于1的采樣點作為像素產(chǎn)生并丟棄離視口上的中心的距離大于或等于1的采樣點的操作。下面將針對圖17更加詳細(xì)地討論這種丟棄或跳過操作。
因此,如上面所討論,基于桶形畸變模式定義的采樣網(wǎng)格1110不是規(guī)則網(wǎng)格模式。換言之,基于桶形畸變模式的采樣網(wǎng)格1110沿中心方向集中??蓪⒉蓸狱c的各自位置確定為定義的網(wǎng)格的各個單元的中心位置。因此,當(dāng)執(zhí)行這種用于采樣著色器或著色器操作的著色器源代碼1120時,可渲染畸變圖像1130。如在圖11中示出,使用通過桶形畸變模式實現(xiàn)的桶形畸變,使畸變圖像1130畸變?yōu)槿缤怯婶~眼透鏡所捕獲。
在一個或多個實施例中,當(dāng)示例采樣著色器150是例如可編程著色器時,用戶可選擇或編寫定義各種畸變模式或各種采樣點的位置的各種類型的著色器源代碼以及圖11的著色器源代碼1120以操作采樣著色器150。根據(jù)實施例,可在僅作為示例的非暫時性介質(zhì)(諸如電子裝置的存儲器、GPU的存儲器和這種可編程著色器的存儲器)中記錄或存儲這樣的著色器源代碼1120,以使著色器源代碼1120能夠控制至少一個處理裝置或元件的操作來實現(xiàn)這種采樣著色操作,如這里所討論的。
圖12是根據(jù)一個或多個實施例的描述在光柵化器中搜索與視口上的圖元疊置的采樣點的方法的示圖。這里,盡管可參照圖5的組件對圖12的方面進(jìn)行說明,但是實施例不限于此,而且可使用其他實施方式和應(yīng)用。
參照圖12,可將由采樣著色器(諸如圖5的采樣著色器150)確定的采樣點SP1至SP11的位置信息存儲在緩沖器(諸如圖5的緩沖器192或存儲器(諸如圖1的存儲器30))中。也可將關(guān)于映射關(guān)系的信息存儲在緩沖器或存儲器中。簡單地說,圖12示出的采樣點SP1-SP11不是意圖與在圖8A-9中描述的采樣點相同。光柵化器(諸如圖5的光柵化器160)可從緩沖器或存儲器讀取所有采樣點SP1至SP11的位置信息以搜索和確定與視口1200上的圖元1210疊置的采樣點。之后,光柵化器可比較圖元1210的位置信息與采樣點SP1至SP11的位置信息,以確定采樣點SP8、SP9和SP10與圖元1210重疊。
圖13是根據(jù)一個或多個實施例的描述在光柵化器中搜索與視口上的圖元疊置的采樣點的方法的圖示。這里,雖然可參照圖1和5的組件對圖13的方面進(jìn)行解釋,但是實施例不限于此,而是可使用其他實施方式和應(yīng)用。
參照圖13,光柵化器(諸如圖5的光柵化器160)可搜索與視口1300上的圖元重疊的采樣點。例如,當(dāng)采樣點的位置信息是四叉樹格式時,光柵化器可使用四叉樹算法搜索與圖元重疊的采樣點。如參照圖12所述,采樣點SP1至SP11的位置信息可由采樣著色器(諸如,圖5的采樣著色器150)確定,并可被存儲在緩沖器(諸如圖5的緩沖器192)或存儲器(圖1的存儲器30)中。除了各自的采樣點的位置信息,相應(yīng)的GPU(諸如圖5的GPU 10)也可使用四叉樹算法將關(guān)于各個區(qū)域1至4的信息存儲在緩沖器或存儲器中,采樣點SP1至SP11分別屬于所述區(qū)域1至4。
例如,GPU可設(shè)置預(yù)定的最大數(shù)(例如,2),并重復(fù)地將包括采樣點S1至S11的區(qū)域分成四塊相同的更小區(qū)域,直到屬于每塊區(qū)域的采樣點的數(shù)量小于或者等于最大數(shù)2。換言之,因為在視口1300的整個區(qū)域中有共計11個采樣點SP1至SP11,所以GPU可將視口1300的整個區(qū)域分成四個相同區(qū)域1至4。因為在區(qū)域1中只有共計2個采樣點SP1和SP3,所以GPU不再劃分區(qū)域1。因為在區(qū)域2中只有共計4個采樣點SP2、SP4、SP5和SP6,所以GPU將區(qū)域2分成四個相等的區(qū)域2-1、2-2、2-3和2-4。因為在區(qū)域2-1中有1個采樣點SP2,所以GPU不再劃分區(qū)域2-1。此外,因為在余下的區(qū)域2-2至2-4中有2個或更少的采樣點,所以GPU不再劃分區(qū)域2-2至2-4。按類似的方案,GPU劃分區(qū)域3-1、區(qū)域3-2-1、區(qū)域3-2-2、區(qū)域3-2-3、區(qū)域3-2-4、區(qū)域3-3和區(qū)域3-4。
GPU可將關(guān)于屬于區(qū)域1至4中的每個的各自的采樣點的信息和關(guān)于區(qū)域1至4中的每個的各自位置信息存儲在緩沖器或存儲器中,區(qū)域被四叉樹算法劃分出所述區(qū)域1至4。
光柵化器可從緩沖器或存儲器中讀取與劃分整個區(qū)域得到的區(qū)域1至4有關(guān)的信息,以搜索與圖元重疊的采樣點。換言之,當(dāng)采樣點的位置信息是以四叉樹格式存儲,對光柵化器來說,讀取關(guān)于所有采樣點的位置信息不是必需的。例如,使用圖12的方法,光柵化器可讀取所有采樣點的位置信息;然而使用圖13的四叉樹方法,光柵化器可只期望讀取相關(guān)采樣點的位置信息。光柵化器可比較圖元1210的位置信息與區(qū)域1至4的各自的位置信息,以確定只有區(qū)域1、區(qū)域3-2-1、區(qū)域3-2-2、區(qū)域3-2-3、區(qū)域3-2-4和區(qū)域4與圖元1210重疊。之后,光柵化器可期望只比較屬于疊置區(qū)域1、區(qū)域3-2-1、區(qū)域3-2-2、區(qū)域3-2-3、區(qū)域3-2-4和區(qū)域4的采樣點SP1、SP3、SP7、SP8、SP9和SP10的位置信息與圖元1210的位置信息,以確定采樣點SP8、SP9、SP10與圖元1210重疊。
因此,根據(jù)實施例,諸如例如根據(jù)四叉樹算法當(dāng)也存儲采樣點的劃分的區(qū)域的信息時,光柵化器可不需要讀取采樣點SP2、SP4、SP5、SP6和SP11的位置信息。根據(jù)實施例也可使用其他存儲、讀取、搜索方法,以使光柵化器的搜索方案不限于任意一種類型。
圖14是根據(jù)一個或多個實施例的描述利用基于枕形畸變模式的采樣點渲染的畸變圖像顯示在HMD系統(tǒng)上的方法的示圖。這里,雖然可參照圖1和3的組件對圖14的方面進(jìn)行解釋,但是實施例不限于此,而且可使用其他實施方式和應(yīng)用。
參照圖14,當(dāng)HMD裝置或系統(tǒng)的透鏡是凸透鏡時,可在顯示面板上顯示由枕形畸變模式引起的畸變圖像。僅作為示例,圖3論證了這樣的HMD裝置或系統(tǒng)。用于HMD系統(tǒng)的GPU(諸如圖1的GPU 10)可基于枕形畸變模式確定采樣點的采樣網(wǎng)格1400,并可使用確定的采樣網(wǎng)格1400渲染畸變圖像1410。當(dāng)在HMD系統(tǒng)的顯示面板上顯示基于枕形畸變模式的畸變圖像1410時,用戶可在沒有通過HMD系統(tǒng)的透鏡的畸變情況下查看圖像1420。換言之,由于透鏡的凸出特性,和根據(jù)采樣點1415的映射位置,在畸變圖像1415上的畸變像素可表現(xiàn)出對應(yīng)于規(guī)則網(wǎng)格模式或未畸變圖像的屏幕像素1425。
圖15A和15B是根據(jù)兩個或多個實施例的描述單次采樣和多重采樣的示圖。這里,雖然將參照圖5的組件對圖15A和15B的方面進(jìn)行解釋,但是實施例不限于此,而且可使用其他實施方式和應(yīng)用。
GPU(諸如圖5的GPU 10)可啟用或禁用在圖形管線(諸如圖5的圖形管線100)中待處理的采樣點的多重采樣。
參照圖15A,采樣著色器(諸如圖5的采樣著色器150)可在禁用或選擇不執(zhí)行多重采樣時針對每個屏幕像素1510確定或產(chǎn)生單個采樣點1515,因而執(zhí)行單次采樣。然而,參照圖15B,當(dāng)啟用多重采樣或選擇執(zhí)行多重采樣時,采樣著色器可為每個屏幕像素1520確定兩個或多個多重采樣點1525。因此,與上述關(guān)于針對每個屏幕像素產(chǎn)生的采樣點的討論類似,相同的討論適用于啟用多重采樣的實施例,在所述啟用多重采樣的實施例中,針對屏幕像素中的每個屏幕像素確定兩個或更多個采樣點,將采樣像素的位置與每個屏幕像素被設(shè)置為因選擇的畸變模式而畸變的程度成比例地布置或映射。
圖16是根據(jù)一個或多個實施例的描述確定用于屏幕像素的每種顏色分量的不同的采樣點的位置的過程的示圖。這里,雖然可參照圖5的組件對圖16的方面進(jìn)行解釋,但是實施例不限于此,而且可使用其他實施方式和應(yīng)用。
除了上述內(nèi)容,在一個或多個實施例中,采樣著色器(諸如圖5的采樣著色器150)可鑒于不同的顏色分量確定這樣的采樣點的位置。
因為波長根據(jù)每種顏色分量而不同,所以與通過透鏡傳輸?shù)膶?yīng)于顏色分量的光線的折射可彼此不同。當(dāng)例如由參考標(biāo)號1600指示的顏色分量是紅(R)、綠(G)和藍(lán)(B)時,R、G和B的折射率互不相同??紤]到自然現(xiàn)象,采樣著色器可通過補償根據(jù)每種顏色分量而不同的各個偏移來確定多個采樣點的各自的位置。例如,采樣網(wǎng)格1610展示了可基于期望的畸變模式確定采樣點的位置的采樣網(wǎng)格。更確切地說,參照采樣網(wǎng)格1620,針對每種顏色分量,采樣著色器可確定對應(yīng)于顏色分量B的采樣點之間的間隔(窄于對應(yīng)于顏色分量G的采樣點之間的間隔),并確定對應(yīng)于顏色分量G的采樣點之間的間隔(窄于對應(yīng)于顏色分量R的采樣點之間的間隔)。因此,針對特定的屏幕像素,采樣著色器可針對一個屏幕像素分別確定對應(yīng)于顏色分量B的采樣點的位置、對應(yīng)于顏色分量G的采樣點的位置和對應(yīng)于顏色分量R的采樣點的位置。當(dāng)施加畸變時,采樣著色器也考慮畸變模式,以確定用于相應(yīng)的屏幕像素的R、G和B采樣點的映射位置。相應(yīng)地,僅作為示例,之后可使用像素著色器(諸如圖5的像素著色器170)來為任意像素選擇適合于將要被著色的顏色分量的分布的顏色分量特有采樣點,并對該像素執(zhí)行像素著色。
圖17是根據(jù)一個或多個實施例的描述在存在未使用的區(qū)域時基于畸變模式渲染畸變圖像的方法的示圖。
參照圖17,可從顯示器渲染畸變圖像1700而不是未畸變的原始圖像時的渲染過程中產(chǎn)生未使用區(qū)域1710。然而,如上面關(guān)于圖11所討論,在一個或多個實施例中,GPU可實現(xiàn)跳過過程,以跳過未使用區(qū)域的光柵化和像素著色,所述未使用區(qū)域的光柵化和像素著色也增加用于渲染畸變圖像1700的總體計算速度和減少用于渲染畸變圖像1700的總體計算量。
圖18是根據(jù)一個或多個實施例的描述采樣著色器確定用于抖動(dithering,遞色)的采樣點的方法的圖示。這里,雖然可參照圖5的組件對圖18的方面進(jìn)行解釋,但是實施例不限于此,而且可使用其他實施方式和應(yīng)用。
參照圖18,可使用抖動算法渲染畸變圖像1800。當(dāng)擴(kuò)大畸變圖像1800的一個區(qū)域1805時,可任意地分配通過抖動算法抖動的像素。采樣著色器(諸如圖5的采樣著色器150)可針對特定區(qū)域1805將采樣點的位置確定為具有任意的位置(如在示出的采樣網(wǎng)格1820中),以針對特定區(qū)域1805施加抖動算法。
圖19是根據(jù)一個或多個實施例的描述在用于基于圖塊的渲染的圖形管線的情況下利用采樣著色的方法的示圖。這里,盡管可參照圖1和圖5的組件對圖19的方面進(jìn)行解釋,但是實施例不限于此,而是可使用其他實施方式和應(yīng)用。
參照圖19,在一個或多個實施例中,當(dāng)圖形管線(諸如圖5的圖形管線100)是用于基于圖塊的渲染時,圖形管線100可包括:用于圖塊像素組合的像素組合管線100-1的通道和用于渲染的渲染管線100-2的通道。
像素組合管線100-1可包括:操作1911,所述操作1911獲得或接收場景信息(場景描述);輸入組裝1912,頂點著色1913,篩選、剪切、和視口(CCV)轉(zhuǎn)換1914,像素組合1917以及操作1918,所述操作1918存儲關(guān)于屬于通過像素組合1917在圖塊比特流中確定的每個圖塊的圖元的信息。
渲染管線100-2可包括:操作1921,所述操作1921獲得或接收場景信息,輸入組裝1922,頂點著色1923,CCV轉(zhuǎn)換1924,光柵化1925,像素著色1926,光柵化操作1927和操作1928,所述操作1928輸出渲染的圖像。
像素組合管線100-1還可包括:采樣著色1915,在所述采樣著色1915中例如通過采樣著色器(諸如圖5的采樣著色器150)確定采樣點(或采樣點的位置);映射操作1916,所述映射操作1916對用于期望的畸變圖像的各自的像素的采樣點中的每個的位置進(jìn)行映射。這里,在一個或多個實施例中,可只在像素組合管線100-1中執(zhí)行采樣著色1915和映射操作1916。更加詳細(xì)地,在一個或多個實施例中,諸如在圖6中示出和僅作為示例,可在執(zhí)行像素組合1917之前與輸入組裝1912、頂點著色1913和CCV轉(zhuǎn)換1914并行地執(zhí)行采樣著色1915和映射操作1916。此外,如在圖19中所展示,因為像素著色1926和光柵化操作1927是基于光柵化1925和像素組合1917執(zhí)行的,所以像素著色1926和光柵化操作1927可只需要執(zhí)行單個通道以輸出具有希望的畸變的渲染圖像。
圖20是根據(jù)一個或多個實施例的描述具有用于渲染帶有畸變的圖像的圖形管線的設(shè)備的框圖。參照圖20,設(shè)備可包括GPU 2000。GPU 2000可基于例如上述關(guān)于GPU 10的討論中的任何來運行。GPU 2000可包括著色器2010和光柵化器2020。僅作為示例,GPU 2000的著色器2010可與圖5的GPU 10的采樣著色器150對應(yīng),光柵化器2020可與圖5的光柵化器160對應(yīng)。換言之,在一個或多個實施例中,GPU 2000可包括著色器和光柵化器,所述著色器和光柵化器與在圖5的GPU 10的組件中的組件類似,但不限于此。例如,GPU 2000可包括除了那些與GPU 10的組件類似的組件之外的組件,或可包括GPU 10的額外類似的組件。
著色器2010可獲得或接收關(guān)于顯示器(諸如圖1的顯示面板40)的屏幕像素的信息。之后,著色器2010可針對屏幕像素中的每一個基于用于期望的畸變圖像的模式(例如,畸變模式)來確定一個或多個采樣點的位置,以表現(xiàn)待渲染的圖像。
光柵化器2020可在與圖元重疊的采樣點中的任何的映射位置產(chǎn)生與待光柵化的圖元對應(yīng)的像素。
最后,由GPU 2000操作的(例如,包括光柵化器2020的)相應(yīng)圖形管線使用由光柵化器2020產(chǎn)生的像素渲染圖像(畸變圖像),諸如上面所討論的。
圖21是根據(jù)一個或多個實施例的用于渲染帶有畸變的圖像的圖形管線方法的流程圖。
參照圖21,僅作為示例,操作圖形管線的方法可以是在電子裝置(諸如圖1的電子裝置1)內(nèi)按時間序列處理的過程,并可通過圖形處理裝置(諸如GPU 10或GPU 2000)實現(xiàn)。這里,上述關(guān)于電子裝置1的操作的不同方面、GPU的任意方面和上述討論的采樣著色器的任意方面也通過引用被包含于這里操作圖21的圖形管線的方法,所以下面省略他們的重復(fù)的描述。此外,通過下面參照圖1、5或20的組件解釋的操作,實施例不限于此,而且也可使用其他的實施方式或應(yīng)用。
在操作2101中,可獲得、提供或接收關(guān)于顯示器的屏幕像素的信息。僅作為示例,圖20的著色器2010或圖5的采樣著色器150可獲得、被提供或接收關(guān)于屏幕像素的信息。
在操作2102中,可基于模式確定一個或多個采樣點的位置,以表現(xiàn)待渲染的圖像。這里,在實施例中,操作2102可包括:兩個獨立的操作,其中,例如基于屏幕像素的確定的位置確定各自的采樣點的位置,之后根據(jù)映射算法(諸如選擇的畸變模式)對確定的位置進(jìn)行映射。僅作為操作2102的示例,圖20的著色器2010或圖5的采樣著色器150可基于這樣設(shè)置的模式確定采樣點的映射位置。
在操作2103中,可確定與在在采樣點中與將被光柵化的圖元疊置的采樣點的映射位置上的圖元對應(yīng)的像素。僅作為示例,圖20的光柵化器2020或圖5的光柵化器160可產(chǎn)生這樣的與在與圖元重疊的采樣點的映射位置上的圖元對應(yīng)的像素。
在操作2104中,可使用產(chǎn)生的像素渲染圖像(例如,畸變圖像)。僅作為示例,GPU 2000或GPU 10可使用產(chǎn)生的像素渲染圖像。
在一個或多個實施例中,在通過將可編程著色階段(諸如,上述關(guān)于采樣點的映射的采樣著色器)包含在可選圖形管線中來支持各種可選圖形管線的同時,更有效地渲染畸變圖像是可能的。例如,根據(jù)一個或多個實施例,可只需要通過增加這樣的可編程著色階段來改變這樣的可選圖形管線。
在圖1、3、4B、5和20中示出的例如可執(zhí)行在這里描述的關(guān)于圖2、6-19和21的操作的設(shè)備、單元、模塊、裝置和其他組件例如是通過硬件組件實現(xiàn)。硬件組件的示例包括本領(lǐng)域普通技術(shù)人員公知的控制器、傳感器、存儲器、驅(qū)動程序和任何其他電子元件。在一個示例中,硬件組件是通過一個或多個處理裝置或處理器或計算機(jī)實現(xiàn)。處理裝置、處理器或計算機(jī)是通過一個或多個能以定義的方式響應(yīng)并執(zhí)行指令的處理元件(諸如,邏輯門的陣列,控制器算術(shù)邏輯單元、數(shù)字信號處理、單片機(jī)、可編程邏輯控制器,現(xiàn)場可編程門陣列,可編程邏輯陣列,微處理器,或任何其他裝置以及本領(lǐng)域鋪技術(shù)人員公知的裝置的組合)實現(xiàn)以獲得想要的結(jié)果。在一個示例中,處理裝置、處理器或計算機(jī)包括或被連接到一個或多個存儲由處理裝置、處理器或計算機(jī)執(zhí)行并可控制處理裝置、處理器或計算機(jī)來實現(xiàn)一個或多個這里描述的方法的計算機(jī)可讀代碼、指令或軟件的存儲器。僅作為示例,例如由處理裝置、處理器或計算機(jī)例如通過實現(xiàn)計算機(jī)可讀代碼、指令或軟件(諸如,操作系統(tǒng)(OS)和在OS上運行的一個或多個軟件應(yīng)用程序)來實現(xiàn)的硬件組件可執(zhí)行這里關(guān)于圖2、6-19和21描述的操作。硬件組件還可以響應(yīng)于指令或軟件的運行來訪問、操作、處理、創(chuàng)建和存儲數(shù)據(jù)。為了方便,單數(shù)術(shù)語“處理裝置”、“處理器”或“計算機(jī)”可用于這里描述的示例的描述,但在其他示例中使用多個處理裝置、處理器或計算機(jī),或者處理裝置、處理器或計算機(jī)包括多個處理元件或處理元件的各種類型,或者兩者。在一個示例中,元件組件可包括多個處理器;在另一個示例中,硬件組件包括處理器和控制器。硬件組件具有不同處理配置中的任何一個或多個,所述處理配置的示例包括:單一處理器,獨立處理器,并行處理器,遠(yuǎn)程處理的環(huán)境,單指令單數(shù)據(jù)(SISD)多處理,單指令多數(shù)據(jù)(SIMD)多處理、多指令單數(shù)據(jù)(MISD)多處理和多指令多數(shù)據(jù)(MIMD)多處理。此外,在各種上述參照設(shè)備數(shù)字中示出的連接線或者連接器意圖在于代表示例功能性關(guān)系和/或在各種硬件元件之間物理的或邏輯的耦合,同時許多其他的功能關(guān)系,物理連接,或邏輯連接可能會在相應(yīng)的裝置實施例中出現(xiàn)。
在圖2、6-19和21中示出的執(zhí)行這里描述的操作的方法可由如上所述執(zhí)行處理器或計算機(jī)可讀代碼、指令或軟件以執(zhí)行這里描述的操作的處理裝置、處理器或計算機(jī)執(zhí)行。
為了單獨或集體地指示或配置處理裝置、處理器或計算機(jī)作為機(jī)器或?qū)S糜嬎銠C(jī)來執(zhí)行由硬件組件執(zhí)行的操作以及上述的方法,可將控制處理裝置、處理器或計算機(jī)實現(xiàn)硬件組件和執(zhí)行上述方法處理器或計算機(jī)可讀代碼、指令或軟件寫為計算機(jī)程序、代碼段、指令及其組合。在一個示例中,處理器或計算機(jī)可讀代碼、指令或軟件包括:機(jī)器碼(諸如由編譯器產(chǎn)生的機(jī)器碼),所述機(jī)器碼是直接由處理裝置、處理器或計算機(jī)執(zhí)行。在另一個實施例中,處理器或計算機(jī)可讀代碼、指令或軟件包括:更高級代碼,所述更高級代碼是通過處理裝置、處理器或計算機(jī)使用解釋器(諸如用任何編程或腳本語言(諸如C,C++,java等)匯編實現(xiàn))與以數(shù)據(jù)結(jié)構(gòu)、對象、過程、程序或其他編程元件的任何組合實現(xiàn)的各種算法來實現(xiàn)的?;谶@里的公開和在理解本公開之后,本領(lǐng)域普通技術(shù)人員的程序員能基于在圖示中示出的框圖和流程圖以及在說明書(公開了用于執(zhí)行由上述硬件組件執(zhí)行的操作和方法的算法)中相應(yīng)的描述中容易地編寫處理器或計算機(jī)可讀代碼、指令或軟件。
在一個或多個非暫時性處理器/計算機(jī)-可讀存儲介質(zhì)中記錄、存儲或固定處理器、或用于控制處理裝置、處理器的計算機(jī)可讀代碼、指令或軟件,或用于實現(xiàn)硬件組件(諸如在圖1、3、4B、5和20的任意一個中所討論的硬件組件)并執(zhí)行如上面在圖2、6-19和21中的任意中所描述的方法的計算機(jī)、以及任意相關(guān)的數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)。非易失性處理器/計算機(jī)-可讀存儲介質(zhì)的示例包括:只讀存儲器(ROM),隨機(jī)存取存儲器(RAM)、閃存、CD-ROMs、CD-Rs、CD+Rs、CD-RWs、CD+RWs、DVD-ROMs、DVD-Rs、DVD+Rs、DVD-RWs、DVD+RWs、DVD-RAMs、BD-ROMs、BD-Rs、BD-R LTHs、BD-Res、磁帶、軟盤、磁光存儲器件、光學(xué)數(shù)據(jù)存儲設(shè)備、硬盤、固態(tài)硬盤和任何本領(lǐng)域普通技術(shù)人員公知的能以非易失性方式存儲處理器或計算機(jī)可讀代碼、指令或軟件和任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)和將處理器或計算機(jī)可讀代碼、指令或軟件和任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)提供給處理裝置、處理器或計算機(jī)使得處理裝置、處理器或計算機(jī)能執(zhí)行指令的任何裝置。在一個示例中,由處理裝置、處理器或計算機(jī)以分布式的方式存儲、訪問和執(zhí)行處理器或計算機(jī)可讀代碼、指令或軟件和任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件以及數(shù)據(jù)結(jié)構(gòu)。
僅作為不窮盡的示例,這里的電子裝置實施例(諸如上面描述的關(guān)于圖1、3、4B、5和20的電子裝置和/或被配置為實現(xiàn)關(guān)于圖2、6-19和21描述的方法)可包括:移動裝置(諸如,蜂窩電話、智能電話、可穿戴智能裝置和便攜式個人電腦(PC)(諸如,膝上型電腦、筆記本電腦、小型筆記本電腦、上網(wǎng)本或超便攜式電腦(UMPC)和平板電腦(PC))、平板手機(jī)、個人數(shù)字助理(PDA)、數(shù)碼相機(jī)、便攜式游戲機(jī)、MP3播放器、便攜式個人多媒體播放器(PMP),手持電子書,全球定位系統(tǒng)(GPS)導(dǎo)航設(shè)備或傳感器,或固定裝置(諸如,臺式電腦、高清電視(HDTV)、DVD播放器、藍(lán)光播放器、機(jī)頂盒或家電)或其他任何具有無線或網(wǎng)絡(luò)通信能力的電話或固定裝置。根據(jù)實施例,電子裝置包括顯示器。
雖然本公開包括具體的示例,但是對本領(lǐng)域普通技術(shù)人員將顯而易見的是,在不脫離權(quán)利要求書和它們的等價物的精神和范圍的情況下,可以對示例做出形式和細(xì)節(jié)上的各種改變。這里描述的示例僅被視為在描述性的意義上,而不是為了限定的目的。在每個示例中的特征或方面的描述被視為可應(yīng)用在其它示例中的相似特征或方面。如果描述的方法按不同的順序執(zhí)行和/或如果在描述的系統(tǒng)、架構(gòu)、裝置或電路中的元件以不同的方式結(jié)合和/或被其它元件或它們的等價物取代或補充,可獲得適宜的結(jié)果。因此,本公開的范圍不是由具體實施方式限定,而是由權(quán)利要求書及其等同物限定,并且在權(quán)利要求書及其等同物的范圍內(nèi)的所有變化將被解釋為被包括在本公開內(nèi)。