專利名稱:用于改善圖形性能的方法、裝置和計算機程序產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字表示的圖形,并且更具體地,本發(fā)明涉及用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的方法、裝置和計算機程序產(chǎn)品。
背景技術(shù):
諸如計算機圖形等數(shù)字表示的圖形在性能方面被不斷改善。在20世紀(jì)80和90年代,用于計算機和游戲控制臺的顯示適配器是隨著圖形加速器出現(xiàn)的,從而卸下了中央處理單元(CPU)在圖形生成方面的負(fù)擔(dān)。最初,顯示適配器提供2D圖形的加速,但最終也包括了對加速3D圖形的支持。現(xiàn)代的顯示適配器使用了名稱為圖形處理單元(GPU)的處理單元。
由于3D圖形的復(fù)雜性,因此現(xiàn)今的GPU將其大量的處理能力用于執(zhí)行與3D圖形有關(guān)的計算。
顯示適配器一直以來的缺點在于其性能。新的應(yīng)用和游戲要求在更高的場景復(fù)雜性、更高的幾何細(xì)節(jié)、更高的分辨率以及更高的圖像質(zhì)量的情況下維持幀率(每秒渲染的屏幕圖像),這導(dǎo)致了如下的需求應(yīng)該在盡可能短的時間內(nèi)渲染每個屏幕圖像。換言之,提高性能往往是重要的。
提高性能的一種己知方式是通過啟用更高的時鐘速度、采用流水線技術(shù)、或利用并行計算來提高GPU的處理能力。然而,這往往導(dǎo)致更高的功耗并且產(chǎn)生更多的熱量。對于電池供電的設(shè)備而言,更高的功耗導(dǎo)致電池壽命縮短。功耗和熱量是移動設(shè)備和桌面顯示適配器的主要制約和瓶頸。此外,對每個GPU的時鐘速度也存在限制。
因此,仍然存在沒有足夠的能力來改善數(shù)字表示的圖形的性能的問題。
發(fā)明內(nèi)容
鑒于上述內(nèi)容,本發(fā)明的目標(biāo)是解決或至少減少一個或若干個上面討論的問題??傮w而言,上面的目標(biāo)由所附獨立權(quán)利要求來實現(xiàn)。
根據(jù)第一方案,本發(fā)明是通過一種用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的方法實現(xiàn)的。所述方法包括接收頂點組的第一表示;基于所述第一表示來確定所述頂點組的第二表示;對所述頂點組的所述第二表示執(zhí)行第一指令集,以提供所述頂點組的第三表示,所述第一指令集與頂點位置確定相關(guān)聯(lián);以及對所述頂點組的所述第三表示進(jìn)行剔除處理。
在計算機圖形中,頂點包括與空間中的位置相關(guān)聯(lián)的數(shù)據(jù)。例如,頂點可以是與圖元的角相關(guān)聯(lián)的所有數(shù)據(jù)。頂點不僅與三個空間坐標(biāo)相關(guān)聯(lián),而且還與正確渲染物體所需的其它圖形信息相關(guān)聯(lián),例如顏色、反射屬性、紋理、以及表面法線。
相連的一組頂點可以用來定義圖元。圖元可以例如是三角形、四邊形、多邊形或其它幾何形狀,或者可替換地,圖元可以例如是空間中的表面或點。例如,表示為三角形的圖元具有三個頂點,而表示為四邊形的圖元具有四個頂點。
本發(fā)明基于這樣的理解,S卩,可能對頂點組執(zhí)行剔除。對頂點組執(zhí)行剔除的優(yōu)點在于可以丟棄頂點組,這會使得性能得到提升。此外,要被渲染的物體的、在整個渲染的圖像中不可見的大部分表面在本處理中不再進(jìn)行渲染,這也使得娃能得到提升。換言之,對頂點組執(zhí)行剔除的優(yōu)點在于避免了對在當(dāng)前幀中不可見的表面進(jìn)行渲染,這會使得性能得到提升。
關(guān)聯(lián)于頂點位置確定的第一指令集可以是頂點剔除指令。當(dāng)執(zhí)行頂點剔除指令時,所述頂點剔除指令可以被設(shè)置為用于計算位置邊界和其它類型的邊界。
執(zhí)行第一指令集的步驟可以包括使用限界算法(boundedarithmetic)。使用限界算法的優(yōu)點在于,可以計算頂點組的第二表示的保守邊界,
即,用于保證包括頂點組的第二表示的邊界。保守邊界的優(yōu)點在于對較簡
單并且保守的表示執(zhí)行確定,這會使得性能得到提升。確定第二表示的步驟還可以包括使用限界算法。
當(dāng)確定第二表示時使用限界算法的優(yōu)點在于,第二表示可以變得更簡單,這使得對第二表示執(zhí)行第一指令集更加高效,這會使得性能得到提升。所述方法可以包括所述限界算法是由泰勒算法、區(qū)間算法以及仿射算法構(gòu)成的組中的至少一種算法。
其優(yōu)點在于,所述方法是靈活的并且支持不同類型的限界算法,并且 所述方法不限于一種限界算法。區(qū)間算法的優(yōu)點在于它是簡單的并由此是 快速的。泰勒算法的優(yōu)點在于,可以通過產(chǎn)生非常緊致的邊界的泰勒模型 (假如這些模型具有足夠高的階)來精確地表示多項式計算。仿射算法的 優(yōu)點在于與泰勒算法相比較,它更快速,并且與區(qū)間算法相比較,它提 供了更好的邊界。
所述頂點組可以包括至少兩個圖元的頂點。
其優(yōu)點在于, 一次可以處理一個以上的圖元,這使得性能得到提升。 所述方法包括所述頂點組包括與關(guān)聯(lián)于頂點位置確定的同一指令集 相關(guān)聯(lián)的頂點。
其優(yōu)點在于簡化了頂點組的處理。頂點與關(guān)聯(lián)于頂點位置確定的同一 指令集相關(guān)聯(lián)意味著可以對利用頂點組中的所有頂點確定的所述第二表 示使用相同的第一指令集,而不是使用若干個第一指令集。
所述方法還可以包括從關(guān)聯(lián)于頂點位置確定的第二指令集推導(dǎo)出所述 第一指令集。
其優(yōu)點在于,可以從頂點著色器(vertex shader)自動推導(dǎo)出所述第一 指令集,而無需用戶提供這些指令。用戶無需提供指令使得所述方法更加 靈活并易于使用。頂點著色器包括與頂點位置確定和諸如頂點加亮等其它 每個頂點計算相關(guān)聯(lián)的指令集。
關(guān)聯(lián)于頂點位置確定的第二指令集可以是頂點著色器指令。現(xiàn)有技術(shù) 的頂點著色器包括頂點著色器指令。
所述方法還可以包括從所述第二指令集推導(dǎo)出第三指令集,并執(zhí)行
所述第三指令集以提供法線界限。
其優(yōu)點在于,可以從頂點著色器自動推導(dǎo)出第三指令集,而無需用戶 提供指令,此外,還可以自動計算法線邊界。法線邊界的優(yōu)點在于可以執(zhí) 行背面剔除,這使得性能得到提升。
關(guān)聯(lián)于頂點位置確定的第三指令集可以是頂點法線剔除指令。當(dāng)執(zhí)行 頂點法線剔除指令時,所述頂點法線剔除指令可以被設(shè)置為用于計算法線 邊界。接收第一指令集的步驟還可以包括如果所述頂點組中的頂點數(shù)超過 閾值,則將所述頂點組劃分成至少兩個子組,其中,所述至少兩個子組包 括與關(guān)聯(lián)于頂點位置確定的同一指令集相關(guān)聯(lián)的頂點。
劃分成子組的優(yōu)點在于可以操控適當(dāng)大小的組。子組越小,剔除處理 導(dǎo)致對至少一個頂點組執(zhí)行剔除的可能性越大。此外,越小的組(子組) 一般意味著包圍這些組的邊界越緊致。越緊致的邊界使得計算越高效,這 會使得性能得到提升。子組包括與關(guān)聯(lián)于頂點位置確定的同一指令集相關(guān) 聯(lián)的頂點的優(yōu)點在于,可以對利用頂點組中的所有頂點確定的第二表示使 用相同的第一指令集。這意味著不必為頂點組中的每個頂點提供關(guān)聯(lián)于頂 點位置確定的、用于確定第二表示的新指令集。
確定第二表示的步驟還可以包括計算所述頂點組的所述第二表示, 并將所述頂點組的所述第二表示存儲在存儲器中。
其優(yōu)點在于無需每次都執(zhí)行所述第二表示的計算。作為替換,可以從 存儲器中取回所述第二表示,這使得性能得到提升。
確定第二表示的步驟還包括從存儲器中取回所述頂點組的所述第二
表不o
其優(yōu)點在于可以從存儲器中取回所述第二表示,并且無需再進(jìn)行計算, 這使得性能得到提升。
所述方法還可以包括從所述頂點組中選擇至少一個頂點;對所述至
少一個頂點的第一表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的指令集,以提供所述
至少一個頂點的第二表示;以及對所述至少一個頂點的所述第二表示進(jìn)行
剔除處理,其中,所述剔除處理的結(jié)果包括剔除所述至少一個頂點的決定 和不剔除所述至少一個頂點的決定中的一個決定,并且在所述剔除處理的
結(jié)果包括剔除所述至少一個頂點的決定的情況下,執(zhí)行以下步驟接收頂 點組的第一表示;確定所述頂點組的第二表示;對所述頂點組的所述第二 表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的第一指令集,以提供所述頂點組的第三 表示;以及對所述頂點組的所述第三表示進(jìn)行剔除處理。
由于它使得性能得到提升,因此這是有利的。例如,如果剔除處理的 結(jié)果是決定不剔除所述至少一個頂點,則與根據(jù)第一方案的方法相比較, 它得到了一種花費更少容量的方法。所述方法還可以包括對包圍所述頂點組的所述第三表示的包圍體進(jìn) 行確定,并對所述包圍體進(jìn)行剔除處理。
其優(yōu)點在于,與對第三表示執(zhí)行剔除處理相比較,可以對包圍體執(zhí)行 更簡單并且更快速的剔除處理,并且其優(yōu)點還在于可以自動確定所述包圍體。
對所述包圍體進(jìn)行所述剔除處理的步驟還可以包括執(zhí)行以下操作中的
至少一個操作對所述包圍體進(jìn)行視域剔除(view frustum culling);對所 述包圍體進(jìn)行背面剔除;以及對所述包圍體進(jìn)行遮擋剔除(occlusion culling)。其優(yōu)點在于要被渲染的物體的、在整個渲染的圖像中不可見的大 部分表面在本處理中不再進(jìn)行渲染,并且避免了對在當(dāng)前幀中不可見的表 面進(jìn)行渲染,這會使得性能得到提升。進(jìn)一步的優(yōu)點在于可以應(yīng)用許多不 同的剔除技術(shù)。
視域剔除是一種基于以下事實的剔除技術(shù)僅可見的物體(即位于當(dāng) 前視域內(nèi)的物體)將被繪制。
背面剔除丟棄了沒有面向觀察者的物體,即該物體的所有法向量沒有 指向觀察者。這些物體將是不可見的,因此不需要繪制它們。
遮擋剔除意味著丟棄被遮擋的物體。
所述第三表示可以是由位置邊界和法線邊界構(gòu)成的組中的至少一個。
位置邊界和法線邊界可以用于確定例如頂點組的位置或邊界。優(yōu)點在
于位置邊界和法線邊界都可以被自動確定。位置邊界和法線邊界可以用于
執(zhí)行背面剔除。其優(yōu)點在于,要被渲染的物體的、在整個渲染的圖像中不
可見的大部分表面在本處理中不再進(jìn)行渲染,并且避免了對在當(dāng)前幀中不
可見的表面進(jìn)行渲染,這會使得性能得到提升。另一優(yōu)點在于,可以計算
位置邊界和法線邊界中的至少一個,這使得性能得到提升。
對所述第三表示進(jìn)行所述剔除處理的步驟還可以包括執(zhí)行以下操作中 的至少一個對所途位置邊界進(jìn)行視域剔除;對所述位置邊界或所述法線
邊界進(jìn)行背面剔除;以及對所述位置邊界進(jìn)行遮擋剔除。
其優(yōu)點在于可以應(yīng)用許多不同的剔除技術(shù)。另一優(yōu)點在于可以執(zhí)行不
同類型的剔除中的至少一種,這使得性能得到提升。
根據(jù)第二方案,本發(fā)明是通過一種用于生成數(shù)字表示的圖形的裝置實現(xiàn)的。所述裝置包括用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的電路, 所述電路用于執(zhí)行以下操作接收頂點組的第一表示;確定所述頂點組的 第二表示;對所述頂點組的所述第二表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的第 一指令集,以提供所述頂點組的第三表示;以及對所述頂點組的所述第三 表示進(jìn)行剔除處理。
應(yīng)該注意的是,可以利用與本發(fā)明第一方案的任意特征相對應(yīng)的特征 的任意組合來實施本發(fā)明的第二方案。
第一方案的優(yōu)點同樣適用于第二方案。
根據(jù)第三方案,本發(fā)明是通過一種計算機程序產(chǎn)品實現(xiàn)的,其包括存 儲在計算機可讀存儲介質(zhì)上的計算機程序代碼,并且當(dāng)在處理器上執(zhí)行所 述計算機程序代碼時,所述計算機程序代碼執(zhí)行根據(jù)本發(fā)明第一方案的方 法。
第一方案的優(yōu)點同樣適用于本發(fā)明的第三方案。
通過下面的具體實施方式
、所附權(quán)利要求書以及附圖,本發(fā)明的其它 目標(biāo)、特征以及優(yōu)點將得以顯現(xiàn)。
一般地,除非在本文中另行明確定義,否則權(quán)利要求書中使用的所有 術(shù)語都應(yīng)該根據(jù)它們在本技術(shù)領(lǐng)域中的普通意義來解釋。除非另行明確聲 明,否則對"一個/一種/所述[元件、設(shè)備、部件、裝置、步驟等]"的引用 被開放地解釋為指代所述元件、設(shè)備、部件、裝置、步驟等中的至少一個 示例。除非明確聲明,否則本文公開的任何方法的步驟都無需嚴(yán)格按照公 開的順序來執(zhí)行。
通過下面參照附圖對當(dāng)前的優(yōu)選實施例進(jìn)行的詳細(xì)描述,本發(fā)明的其 它特征和優(yōu)點將變得顯而易見,在附圖中
圖1是示出了在根據(jù)現(xiàn)有技術(shù)的顯示適配器中的不同實體如何進(jìn)行交 互的方框圖2a是示出了在本發(fā)明的實施例中裝置內(nèi)的不同實體如何進(jìn)行交互 的方框圖2b是示出了本發(fā)明的實施例的方框圖;; 圖2d是示出了本發(fā)明的實施例的方框圖; 圖2e是示出了本發(fā)明的實施例的方框圖3a-d是示出了能夠在圖2a-e的裝置中執(zhí)行的剔除處理的流程圖; 圖4是示出了能夠在圖2a-e的頂點探測單元中執(zhí)行的頂點探測處理 (probing process)的流程圖;以及
圖5示出了實施圖2a-e的裝置的典型通用計算機的總體架構(gòu)。
具體實施例方式
現(xiàn)在將在下文中參照附圖來更完整地描述本發(fā)明,在附圖中,示出了 本發(fā)明的特定實施例。然而,本發(fā)明可以以許多不同的形式來實施,并且 本發(fā)明不應(yīng)該被理解為受本文闡述的實施例的限制;相反,這些實施例是 作為實例提供的,從而使得本申請是全面并且完整的,并且這些實施例將 本發(fā)明的范圍完整地傳達(dá)給本領(lǐng)域技術(shù)人員。在全文中,相同的附圖標(biāo)記 指代相同的元件。圖l是示出了在本領(lǐng)域技術(shù)人員已知的常規(guī)顯示適配器 中的不同實體如何進(jìn)行交互的方框圖。根據(jù)現(xiàn)有技術(shù)的顯示適配器可以包 括頂點著色器120、三角遍歷(triangle traversal)單元130以及片段著色器 (fragment shader) 140。根據(jù)現(xiàn)有技術(shù)的顯示適配器的實體對本領(lǐng)域技術(shù) 人員而言是公知的。'
頂點著色器120的輸入110是頂點。在計算機圖形中,頂點包括與空 間中的位置相關(guān)聯(lián)的數(shù)據(jù)。例如,頂點可以是與圖元的角相關(guān)聯(lián)的所有數(shù) 據(jù)。頂點不僅與三個空間坐標(biāo)相關(guān)聯(lián),而且還與正確渲染物體所需要的其 它圖形信息相關(guān)聯(lián),例如顏色、反射屬性、紋理以及表面法線。每個頂點 還可以與諸如法線和紋理坐標(biāo)等其它特性相關(guān)聯(lián)。
相連的一組頂點可以用來定義圖元。圖元可以例如是三角形、四邊形、 多邊形或其它幾何形狀,或者可替換地,圖元可以例如是空間中的表面或 點。例如,表示為三角形的圖元具有三個頂點,而表示為四邊形的圖元具 有四個頂點。
頂點著色器120包括針對每個頂點執(zhí)行的指令集。該指令集可以例如 包括簡單的矩陣變換、投影變換、多個矩陣乘法的混合、加紋理以及程序置換(procedural displacements
三角遍歷單元130負(fù)責(zé)建立由連接的控制器所指示的多邊形。盡管可 以使用任意的多邊形,但是普遍使用三角形。對于每種多邊形,三角遍歷 單元130將要被渲染的多邊形劃分成一個或更多個片(tile),其中,每個 片至少與該多邊形部分重疊。 一般地,片是包括多個片段的二維矩形。這 些片段中的每一個對應(yīng)于像素,并且包括用于渲染該像素并測試該像素是 否應(yīng)該被渲染在屏幕上所需的所有數(shù)據(jù)。片的一般大小是8*8個片段,雖 然任何片大小都是可能的。
三角遍歷單元130的另一個重要任務(wù)是找出位于正被渲染的幾何圖元 (例如三角形)內(nèi)部的片段。這可以使用本領(lǐng)域技術(shù)人員已知的各種技術(shù) 來完成。
片段著色器140針對傳遞到該單元的每個片段來執(zhí)行片段著色器程 序。這些片段中的每一個對應(yīng)于像素,并且包括用于渲染該像素并測試該 像素是否應(yīng)該被渲染在屏幕上所需的數(shù)據(jù)。片段數(shù)據(jù)可以包括由光柵位置、 深度、顏色、紋理坐標(biāo)、模板或阿爾法(用于混合)構(gòu)成的組中的至少一 種。對于每一個像素,可以存在多種片段樣例。
這些片段被進(jìn)一步處理,以便例如將之前評估的顏色與紋理進(jìn)行組合、 添加諸如霧等效果,并且在可能時識別不需要渲染的片段,即片段剔除。
在這些片段被寫入目標(biāo)緩沖器之前,片段著色器140還可以執(zhí)行深度 測試、阿爾法測試以及混合。
可以將根據(jù)現(xiàn)有技術(shù)的顯示適配器的輸出150顯示在顯示器上。
應(yīng)該注意,從此處開始將描述本發(fā)明。
下面將參照圖2來描述根據(jù)本發(fā)明的用于生成數(shù)字表示的圖形的裝置 的不同實施例。該裝置包括用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的 電路。所述裝置可以被實施為顯示適配器,并且為了便于理解,在下文中, 將所述裝置稱為顯示適配器。
圖2a是示出了根據(jù)本發(fā)明的顯示適配器201的實施例的方框圖。顯示 適配器201包括用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的電路,其形 成了用于剔除頂點組的頂點剔除單元214。
頂點剔除單元214的輸入210是一組頂點的第一表示。在本文中,將一組頂點的第一表示解釋為頂點自身。
在頂點剔除單元214中,對頂點組以及頂點的表示執(zhí)行剔除。頂點剔 除單元214的輸出222可以是要被丟棄的頂點組。
下面結(jié)合圖3a-d進(jìn)一步描述剔除的細(xì)節(jié)和效果。
顯示適配器201的輸出224可以顯示在顯示器上。
顯示適配器201還可以包括頂點探測單元212,參見圖2b。頂點探測 單元212被設(shè)置為用于檢査是否能夠剔除頂點組中的至少一個頂點。該至 少一個頂點可以是頂點組中的第一頂點、最后一個頂點和/或中間的頂點。 可替換地,可以從頂點組中隨機選擇該至少一個頂點。頂點探測單元212 可以使用根據(jù)現(xiàn)有技術(shù)的頂點著色器來變換頂點。然后,頂點探測單元212 執(zhí)行例如視域剔除,并檢查該至少一個頂點是否位于該視域內(nèi),如果該至 少一個頂點位于該視域內(nèi),則不能剔除該至少一個頂點。然而,應(yīng)該要注 意的是,還可以使用本領(lǐng)域技術(shù)人員已知的其它剔除技術(shù)。
如果頂點組中的至少一個頂點不能被剔除,則意味著不能剔除整個頂 點組,于是在頂點剔除單元214中最好不要對整個頂點組執(zhí)行剔除,這是 因為這種剔除是需要容量(capacity demanding)的。 先前已經(jīng)結(jié)合圖2a描述過了頂點剔除單元214、頂點剔除單元214的 輸入210以及顯示適配器201的輸出224。
圖2c是示出了在本發(fā)明的實施例中顯示適配器201內(nèi)的不同實體如何 進(jìn)行交互的方框圖。顯示適配器201包括頂點剔除單元214、頂點著色器 216、三角遍歷單元218以及片段著色器220。實體216、 218和220的類 型可以與上面參照圖1描述的實體的類型相似。
先前已經(jīng)結(jié)合圖2a描述過了頂點剔除單元214、頂點剔除單元214的 輸入210以及顯示適配器201的輸出224。
在一個實施例中,圖2c的顯示適配器201還可以包括先前結(jié)合圖2b 已經(jīng)描述過的頂點探測單元212。
在另一個實施例中,參見圖2d,顯示適配器201包括頂點剔除單元214、 頂點著色器216、三角遍歷單元218、片段剔除單元228以及片段著色器 220。實體216、 218和220的類型可以與上面參照圖l描述的實體的類型 相同或相似。先前已經(jīng)結(jié)合圖2a描述過了頂點剔除單元214、頂點剔除單元214的 輸入210以及顯示適配器201的輸出224。
在一個實施例中,圖2d的顯示適配器201還可以包括先前結(jié)合圖2b 己經(jīng)描述過的頂點探測單元212。
在片段剔除單元228中,根據(jù)可替換的剔除程序(也稱為可替換的剔 除模塊)對片執(zhí)行剔除。在國際專利申請PCT/SE2008/000055中更加詳細(xì) 地介紹了該剔除程序的細(xì)節(jié)和效果,本文通過引用并入了該國際專利申請 PCT/SE2008/000055的內(nèi)容。
圖2d的實施例還可以包括片段探測單元226。片段探測單元226被設(shè) 置為用于檢查是否可以剔除片中的至少一個像素。該至少一個像素例如可 以是片的中心像素或片的四個角。如果不能剔除該片的至少一個像素,則 意味著該片不能被剔除,于是在片段剔除單元228中最好不要執(zhí)行該剔除, 這是因為這種剔除是需要容量的。
在另一個實施例中,參見圖2e,顯示適配器201包括基本圖元(base primitive)剔除單元234、頂點剔除單元214、頂點著色器216、三角遍歷 單元218以及片段著色器220。實體216、 218和220的類型可以與上面參 照圖1描述的實體的類型相同或相似。
先前已經(jīng)結(jié)合圖2a描述過了頂點剔除單元214和顯示適配器201的輸 出224?;緢D元剔除單元234的輸入208是基本圖元。計算機圖形領(lǐng)域 中的幾何圖元通常被解釋為系統(tǒng)能夠操控(例如繪制或存儲)的原子幾何 對象??梢詫⒃訋缀螌ο罄斫鉃椴荒鼙粍澐殖筛ο蟮膸缀螌ο?。所 有其它圖形元素都能利用這些圖元來構(gòu)造。
在一個實施例中,圖2e的顯示適配器201還可以包括先前結(jié)合圖2b 已經(jīng)描述過的頂點探測單元212。
在基本圖元剔除單元234中,根據(jù)剔除程序來對基本圖元執(zhí)行剔除。 在瑞典專利申請0800165-3中,更加詳細(xì)地介紹了該剔除程序的細(xì)節(jié)和效 果,本文通過引用并入了瑞典專利申請0800165-3的內(nèi)容。
圖2e的實施例還可以包括基本圖元探測單元232?;緢D元探測單元 232被設(shè)置為用于檢査是否可以剔除基本圖元的至少一個頂點。選擇該基 本圖元的至少一個頂點。該至少一個頂點例如可以是該基本圖元的頂點或該基本圖元的中心。如果不能剔除基本圖元的至少一個頂點,則意味著不
能剔除該基本圖元,于是在基本圖元剔除單元234中最好不要執(zhí)行基本圖 元剔除,這是因為基本圖元剔除是需要容量的。
在附圖未示出的另一個實施例中,顯示適配器201可以包括基本圖元 探測單元232、基本圖元剔除單元234、頂點探測單元212、頂點剔除單元 214、頂點著色器216、三角遍歷單元218、片段探測單元226、片段剔除 單元228以及片段著色器220。
圖3示出了能夠在圖2a、圖2b、圖2c、圖2d和圖2e的頂點剔除單 元214中對頂點組執(zhí)行的剔除程序的流程圖。
在步驟310,接收頂點組的第一表示。所接收的頂點組可以包括至少 兩個圖元的頂點。
使用所謂的繪制調(diào)用(draw call)將要被輸入到頂點著色器216的頂 點聚集成多個組。繪制調(diào)用包括頂點和信息,該信息是有關(guān)于如何連接頂 點而創(chuàng)建圖元(例如三角形)的信息。
繪制調(diào)用中的頂點共享公共渲染狀態(tài),其意味著這些頂點與同一頂點 著色器相關(guān)聯(lián),并且還與同一幾何著色器、像素著色器以及其它類型的著 色器相關(guān)聯(lián)。渲染狀態(tài)描述了如何渲染特定類型的物體,包括它的材料屬 性、相關(guān)聯(lián)的著色器、紋理、變換矩陣、光等。渲染狀態(tài)例如可以用于渲 染樹木的一部分的所有圖元、人的一部分的所有圖元、花莖的所有圖元。 同一繪制調(diào)用中的所有頂點可以用來以相同材料/外觀來渲染物體。
通常來說,為了渲染整個圖像,需要許多繪制調(diào)用。使用繪制調(diào)用的 原因在于與一次渲染一個圖元并針對每個圖元必須切換著色器程序的情 況相比,利用相同狀態(tài)和著色器渲染相對較大的圖元組具有更高的效率。 使用繪制調(diào)用的另一優(yōu)點在于避免了應(yīng)用程序接口 (API)和圖形硬件架 構(gòu)中的開銷。
在步驟320,基于所述第一頂點組來確定所述頂點組的第二表示???以根據(jù)以下過程并使用限界算法來計算所述頂點組的第二表示
三維模型包括k個頂點,pi, ie[O, k-l]。例如,可以將x坐標(biāo)的邊界
計算為A=[min,(X》max,^。],即計算頂點P、 ie
的所有x坐標(biāo)的最小值和最大值。這產(chǎn)生了一個區(qū)間a=[^,^:]。還可以針對p的 所有其它分量以及針對所有其它變化的參數(shù)來計算該區(qū)間。應(yīng)該注意,作 為替換,可以應(yīng)用其它類型的計算方法來計算這些邊界。在上面的實例中, 使用區(qū)間算法。仿射算法或泰勒算法是可以作為替換使用的其它類型的限 界算法。
在步驟330,對所述頂點組的所述第二表示執(zhí)行第一指令集,以提供
所述頂點組的第三表示。當(dāng)執(zhí)行所述第一指令集時,可以使用限界算法。 限界算法例如可以是泰勒算法、區(qū)間算法或仿射算法。
在一個實施例中,使用一個或多個多項式來擬合頂點組的特性,并構(gòu) 建泰勒模型,其中,多項式部分包括適合多項式的系數(shù),并且調(diào)節(jié)余項以 使得該泰勒模型包含該組中的所有頂點。與使用區(qū)間算法時的情況相比, 這種方式可以給出更明顯的邊界。
在步驟340,對所述頂點組的所述第三表示進(jìn)行剔除處理。執(zhí)行剔除 是為了避免繪制出看不見的物體或物體看不見的部分。
圖3b-d示出了根據(jù)圖3a的剔除程序的不同實施例的流程圖,可以在 圖2a、圖2b、圖2c、圖2d和圖2e的頂點剔除單元214中對頂點組執(zhí)行
剔除程序。
可以采用不同的方式來聚集在步驟310中接收到的頂點組。 一種方式 是使用整個繪制調(diào)用,這意味著在該繪制調(diào)用中頂點組的第一表示包括所 有頂點。
另一種方式是聚集m個圖元的頂點,其中m是常數(shù)。當(dāng)使用該替換 方式時,頂點組的第一表示可以跨越一個以上的繪制調(diào)用。
另一種方式是根據(jù)步驟S311來聚集頂點,參見圖3b:如果所述頂點 組中的頂點數(shù)超過閾值,則將所述頂點組劃分成至少兩個子組,其中,所 述至少兩個子組包括與關(guān)聯(lián)于頂點位置確定的同一指令集相關(guān)聯(lián)的頂點。 這種聚集頂點的方式是前面描述的兩種方式的組合。使用這種方式,組不 會跨越一個以上的繪制調(diào)用,并且組的大小不會大于m。
另一種聚集頂點的方式包括對例如包圍了頂點的位置的區(qū)間進(jìn)行計算。也可以針對諸如顏色等其它參數(shù)來計算該區(qū)間。將頂點添加到組中, 直到該區(qū)間超過預(yù)先確定的閾值。
在一個實施例中,步驟320可以包括圖3b的步驟320a, g卩,計算頂 點組的第二表示,然后將所述頂點組的所述第二表示存儲在存儲器中。在 下一次需要頂點組的第二表示時,可以從存儲器中取回所述頂點組的所述 第二表示。這在容量方面是高效的,原因在于不必針對每個頂點組都執(zhí)行 計算。只要輸入的頂點組與關(guān)聯(lián)于頂點位置確定的同一指令集相關(guān)聯(lián)并與 相同的頂點特性相關(guān)聯(lián),該方案就是可行的。頂點特性例如可以是頂點位 置、法線、紋理坐標(biāo)等。
在一個實施例中,步驟320可以包括圖3b的步驟320b, g卩,可以從 存儲器中取回頂點組的第二表示。
在一個實施例中,可以從與頂點位置確定相關(guān)聯(lián)的第二指令集推導(dǎo)出 第一指令集,如圖3c的步驟321。與頂點位置確定相關(guān)聯(lián)的第二指令集在 這里被解釋成是現(xiàn)有技術(shù)的常規(guī)頂點著色器中的指令。
然后,分析該指令集,并且將用來計算頂點位置的所有指令進(jìn)行隔離。 這些指令被重新定義為運用諸如泰勒算法、區(qū)間算法、仿射算法等限界算 法或本領(lǐng)域技術(shù)人員已知的其它適當(dāng)算法。
假設(shè)利用齊次坐標(biāo)來表示頂點,P=(px, py, pz, Pw)T(其中通常p, 1), T是轉(zhuǎn)置運算符,即,使用列向量。在最簡單的形式中,頂點著色器 程序是對頂點p進(jìn)行運算并計算新的位置Pd的函數(shù)。更一般地,頂點著色 器程序是對頂點p和一組變化的參數(shù)tj, ie[O, n-l]進(jìn)行運算的函數(shù),參 見等式(1)。
P =/(p, t, M) 等式(1)
為了簡化標(biāo)記,將所有tj個參數(shù)放入一個長向量t中。這些參數(shù)例如
可以是時間、紋理坐標(biāo)、法向量、紋理等。參數(shù)M表示諸如矩陣、物理常
數(shù)等常參數(shù)的集合。
除了Pd之外,頂點著色器程序還可以具有許多其它輸出,并由此頂點
著色器程序還具有更多輸入。下面假設(shè)在Pd的計算中使用f的自變量(參數(shù))。
當(dāng)對關(guān)聯(lián)于頂點位置確定的第一指令集進(jìn)行推導(dǎo)時,重新用公式表示頂點著色器,以使得輸入是所述第二表示(例如,頂點組的特性的區(qū)間邊
界),而輸出是頂點位置的邊界,參見等式(2)。
巧=/(凡 ^) 等式(2)
下面是泰勒模型的簡要描述,以便有助于理解下面的步驟。
在泰勒模型中使用區(qū)間,下面的標(biāo)記用于表示一個區(qū)間
5 = [^, a] = |x I q s " 等式(3)
對于n+l次可微函數(shù)/("),其中"e["。,"小泰勒模型f由泰勒多項式7> 和區(qū)間余項/V組成。于是,定義域^["。,",]上的n階泰勒模型(這里表示 為7)為
7(")ei;^^.("-"。)、[^^]=1>乂4^ 等式(4)
在該等式中,i:^^.(w-"。y是泰勒多項式,k,^]是區(qū)間余項。該表示
被稱為泰勒模型,并且該表示是函數(shù)/在定義域"e["。,",]上的保守逼近
(conservative enclosure)。還可以定義泰勒模型的算術(shù)運算符,其中結(jié)果
也是保守逼近(另一泰勒模型)。作為一個簡單的例子,假設(shè)要計算/ +《, 并將這些函數(shù)表示為泰勒模型7-(7),F,)和g^(7;A)。于是,它們的和的
泰勒模型是(7>+7;力+4)。還可以推導(dǎo)出更復(fù)雜的運算符,如乘法、正弦、 對數(shù)、指數(shù)、倒數(shù)等。在BERZ, M., AND HOFFSTATTER, G. 1998, "Computation and Application of Taylor Polynomials with Interval Remainder Bounds", Ae//a6/e Com/wa"g, 4, 1, 83-97中描述了這些運算符的實現(xiàn)細(xì)節(jié)。
在一個實施例中,頂點組的第二表示可以是頂點特性的區(qū)間邊界,例 如位置和/或法線邊界。可以使用限界算法來執(zhí)行第一指令集。在該實施例 中,第三表示是包圍體。在一個實施例中,包圍體可以是包圍盒。例如通 過計算每個頂點特性的最小值和最大值來確定第三表示。組的所述第三表示的包圍體進(jìn)行確
定,并且對所述包圍體進(jìn)行剔除處理,參見圖3c的步驟332。
一組物體的包圍體是完全包含該組物體的聯(lián)合的封閉體。包圍體可以 具有各種形狀,例如諸如立方體或長方體之類的盒狀體、球體、圓柱體、 多面體以及凸包。
創(chuàng)造性的包圍體可以是緊致的包圍體。包圍體是緊致的意味著該包圍 體的面積或體積盡可能的小,并且仍然完全包圍所述頂點組的所述第三表示。
在一個實施例中,頂點組的第二表示是頂點特性的泰勒模型。使用泰 勒算法來執(zhí)行第一指令集。頂點組的第三表示可以是使用第一指令集并利 用第二表示計算的邊界。這些邊界例如可以根據(jù)"Interval Approximation of Higher Order to the Ranges of Functions", Qun Lin and J. GL Rokne, Computers Math. Applic., vol 31, no. 7, pp. 101-109, 1996中公開的方法 來計算。在一個實施例中,對包圍所述頂點組的所述第三表示的包圍體進(jìn) 行確定,并且對所述包圍體進(jìn)行剔除處理。
在另一個實施例中,頂點組的第一表示可以描述參數(shù)化的表面(例如, 已經(jīng)進(jìn)行了細(xì)分的表面),其被兩個坐標(biāo)(例如(u, v))參數(shù)化。在另一 個實施例中, 一個或多個多項式模型適合于擬合頂點組的特性。
在一個實施例中,第三表示可以是泰勒模型并且第三表示可以是頂點 位置特性的多項式近似。更特別地,它可以是位置邊界 A",v)-(A,A,A,A),即四個泰勒模型。對于單個分量,例如X,位置邊 界可以用如下冪基函數(shù)來表達(dá)(為了清晰,省略了余項/V):
等式(5)
在一個實施例中,所述頂點組的所述第三表示可以是法線邊界。對于 參數(shù)化的表面,非歸一化的法線n可以被計算為-
=M^rxM^ 等式(6)
然后,作為法線的泰勒模型的法線邊界被計算為-
—,v) = ^^x^^ 等式(7)
頂點組的第三表示可以是冪形式的泰勒多項式。確定包圍體的一種方式可以是計算泰勒多項式的導(dǎo)數(shù),并由此找出第 三表示的最小值和最大值。
確定包圍體的另一種方式可以根據(jù)如下過程。泰勒多項式被轉(zhuǎn)換成伯
恩斯坦(Bernstein)形式。由于伯恩斯坦基的凸包屬性保證了多項式的實 際表面或曲線位于在伯恩斯坦基中獲得的控制點的凸包內(nèi),所以通過找到 在每一維中的最小和最大控制點值來計算包圍體。將等式5變換成伯恩斯 坦基<formula>formula see original document page 21</formula>
在該等式中<formula>formula see original document page 21</formula>是雙變量情況下在三角域上的
伯恩斯坦多項式。使用以下公式來執(zhí)行該轉(zhuǎn)換,在HUNGERBt)HLER, R., AND GARLOFF, J. 1998, "Bounds for the Range of a Bivariate Polynomial over a Triangle". Reliable Computing", 4, 1, 3—13中描述了該
公式<formula>formula see original document page 21</formula>
為了計算包圍盒,對于每一維(x、 y、 z和w),僅計算了在所有A,上 的最小值和最大值。這給出了包圍盒6、(H,&人),其中,每個元素都是 區(qū)間,例如^=[&,^.
在這種方式中,上面推導(dǎo)出的位置邊界、法線邊界以及包圍體被用來 對頂點組應(yīng)用不同的剔除技術(shù)。
在一個實施例中,使用所述位置邊界或所述包圍體來執(zhí)行視域剔除, 參見圖3d的步驟341。
在一個實施例中,使用所述位置邊界或所述包圍體來執(zhí)行遮擋剔除, 參見圖3d的步驟342。
在一個實施例中,從所述第二指令集推導(dǎo)出第三指令集,并執(zhí)行所述第三指令集以提供法線邊界,參見圖3d的步驟343。
在一個實施例中,使用由所述法線邊界、所述位置邊界以及所述包圍 體構(gòu)成的組中的至少一個來執(zhí)行背面剔除,參見圖3d的步驟344。
在一個實施例中,執(zhí)行步驟341、 342和344中的至少一個步驟。步驟 341-344無需嚴(yán)格按所公開的順序來執(zhí)行。
不應(yīng)將下面公開的剔除技術(shù)理解成是限制性的,相反這些技術(shù)是通過 實例的方式提供的。本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,可以使用與下面描述的 技術(shù)不同的各種技術(shù)來執(zhí)行背面剔除、遮擋剔除以及視域剔除。
視域剔除是一種基于以下事實的剔除技術(shù)僅可見的物體(即位于當(dāng) 前視域內(nèi)的物體)將被繪制。可以將視域定義為模型世界中可以顯現(xiàn)在屏 幕上的空間區(qū)域。繪制視域外的物體是對時間和資源的浪費,這是因為視 域外的物體無論如何也是不可見的。如果物體全部在視域外,則它是不可 見的并且可以被丟棄。
在一個實施例中,針對視域的平面來測試包圍體的位置邊界。由于包 圍體纟位于齊次裁剪空間(clip space)內(nèi),所以可以在裁剪空間中執(zhí)行該 測試。可以使用針對平面-盒(plane-box)測試的標(biāo)準(zhǔn)優(yōu)化,其中,僅包圍 體(該包圍體為包圍盒)的單個角被用來評估平面方程。于是,每個平面
測試相當(dāng)于相加和比較。例如,如果包圍體在左平面外,則使用^:+^:<0來
執(zhí)行測試。也可以使用位置邊界列",力-(A,^,A,A)來執(zhí)行測試。因為這 些測試在時間和資源方面是高效的,所以將視域測試作為首先進(jìn)行的測試 是有利的。
背面剔除丟棄了沒有面向觀察者的物體,即該物體的所有法向量沒有 指向觀察者。這些物體將是不可見的,因此不需要繪制它們。 給出表面上的一個點p(", v), 一般將背面剔除計算為 c = ; (w,v).w(M,v) 等式(10)
在該等式中,n(w,v)是(",v)處的法向量。如果OO,則對于該特定值(w,v) 而言,p(w,v)是位于背面的。同樣地,該公式也可以用來剔除例如三角形 或一組三角形,例如由一組頂點描述的三角形。計算點積(參見等式7和 10)的泰勒模型?=》(",V);(",v)。為了能夠進(jìn)行背面剔除,必須在整個 三角域上保持以下條件?>0。再次使用伯恩斯坦形式的凸包屬性來保守,?i,并且如果£>0,則可以剔除該 三角形或一組三角形。
在另一實施例中,針對法線來計算區(qū)間邊界,以檢査是否滿足背面條件。
也可以使用位置邊界》(",V)"A,Uz,D,或替換地使用包圍體來執(zhí)
行測試。
遮擋剔除意味著丟棄被遮擋的物體。下面針對包圍盒來描述遮擋剔除, 但是本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,也可以針對其它類型的包圍體來執(zhí)行遮
擋剔除。
除了在深度緩沖器中僅使用單個額外級(extmlevd) (8*8個像素片) 之外,遮擋剔除技術(shù)與分級的深度緩沖非常類似。最大深度值Z^被存儲 在每個片中。這是在對三角形進(jìn)行光柵化時使用的GPU中的標(biāo)準(zhǔn)技術(shù)。對 裁剪空間的包圍盒b進(jìn)行投影,并且對與軸對齊盒重疊的所有片進(jìn)行訪問。 在每個片處,執(zhí)行經(jīng)典的遮擋 剔除Z=^Z=,如果滿足該比較,則指示 該盒在當(dāng)前片處被遮擋。從裁剪空間的包圍盒獲得該盒的最小深度Z^, 從分級的深度緩沖器(其己經(jīng)存在于當(dāng)今的GPU中)獲得片的最大深度 Z=。注意,只要發(fā)現(xiàn)片未被遮擋,就可以終止測試,并且注意,直接將 更多級添加到分級的深度緩沖器。遮擋剔除測試可以被視為要渲染的圖元 組的包圍盒的非常低廉的預(yù)光柵化。因為該技術(shù)以片為單位進(jìn)行操作,所 以比遮擋査詢的花費少。
在另一實施例中,也可以使用位置邊界》(",力-(A,^,A,:^)來執(zhí)行測
試o
在一個實施例中,剔除處理是可替換的。這意味著可以向頂點剔除單
元214提供用戶定義的剔除處理。
圖4示出了能夠在圖2a、圖2b、圖2c、圖2d和圖2e的頂點探測單 元212中對至少一個頂點執(zhí)行的探測程序的流程圖。
從頂點組中選擇至少一個頂點,參見步驟301。對所述至少一個頂點 的第一表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的指令集,以提供所述至少一個頂 點的第二表示,參見步驟302。對所述至少一個頂點的第二表示進(jìn)行剔除 處理,參見步驟303,其中,所述剔除處理的結(jié)果包括丟棄所述至少一個頂點的決定和不丟棄所述至少一個頂點的決定二者之一。在所述剔除處理
的結(jié)果包括丟棄所述至少一個頂點的決定時,執(zhí)行步驟310-340。在本發(fā) 明的裝置201或本發(fā)明的實施例中可以執(zhí)行結(jié)合圖3a-d描述的步驟。
圖5示出了實施圖2的顯示適配器201的典型通用計算機583的總體 架構(gòu)。計算機583具有諸如CPU等控制器570,其能夠執(zhí)行軟件指令。控 制器570連接到諸如隨機存取存儲器(RAM)等易失性存儲器571和顯示 適配器500,該顯示適配器對應(yīng)于圖2的顯示適配器201。顯示適配器500 又連接到顯示器576,例如CRT監(jiān)視器、LCD監(jiān)視器等。控制器570還連 接到諸如硬盤驅(qū)動器或閃速存儲器等持久性存儲裝置573、以及諸如光介 質(zhì)(例如CD、 DVD、 HD-DVD或藍(lán)光光盤)的讀取器和/或?qū)懭肫鞯裙獯?儲裝置574。網(wǎng)絡(luò)接口 581也被連接到控制器570,以提供對網(wǎng)絡(luò)582 (例 如局域網(wǎng)、廣域網(wǎng)(例如因特網(wǎng))、無線局域網(wǎng)或無線城域網(wǎng))的訪問。通 過外圍設(shè)備接口 577,例如典型的通用串行總線接口、無線通用串行總線 接口、火線接口、 RS232串行接口、 Centronics并行接口、 PS/2接口,控 制器570可以與鼠標(biāo)578、鍵盤579或任何其它外圍設(shè)備(包括操縱桿、 打印機、掃描儀等)進(jìn)行通信。
應(yīng)該注意的是,盡管通用計算機在上面被描述成用于實施本發(fā)明的各 種實施例,但是在利用數(shù)字圖形,特別是3D圖形的任何環(huán)境(例如游戲 控制臺、移動電話、MP3播放器等)中,同樣可以很好地實施本發(fā)明。
還可以在更加多的通用架構(gòu)中實施本發(fā)明。這種架構(gòu)例如可以包括能 夠執(zhí)行任何類型的程序的許多小型處理器內(nèi)核。相對于更多的以硬件為中 心的GPU來說,這意味著一種軟件GPU。
已經(jīng)在上文參照若干實施例大體上描述了本發(fā)明。然而,本領(lǐng)域技術(shù) 人員應(yīng)該容易地意識到,與上面公開的實施例不同的其它實施例同樣可能 落入所附權(quán)利要求書限定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1、一種用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的方法,所述方法包括接收頂點組的第一表示;基于所述第一表示來確定所述頂點組的第二表示;對所述頂點組的所述第二表示執(zhí)行第一指令集,以提供所述頂點組的第三表示,所述第一指令集與頂點位置確定相關(guān)聯(lián);以及對所述頂點組的所述第三表示進(jìn)行剔除處理。
2、 根據(jù)權(quán)利要求1所述的方法,其中,執(zhí)行第一指令集的步驟包括使 用限界算法。
3、 根據(jù)前述任一權(quán)利要求所述的方法,其中,確定第二表示的步驟還 包括使用限界算法。
4、 根據(jù)權(quán)利要求2或3所述的方法,其中,所述限界算法是由泰勒算 法、區(qū)間算法以及仿射算法構(gòu)成的組中的至少一種算法。
5、 根據(jù)前述任一權(quán)利要求所述的方法,其中,所述頂點組包括至少兩 個圖元的頂點。
6、 根據(jù)前述任一權(quán)利要求所述的方法,其中,所述頂點組包括與關(guān)聯(lián) 于頂點位置確定的同一指令集相關(guān)聯(lián)的頂點。
7、 根據(jù)前述任一權(quán)利要求所述的方法,還包括從與頂點位置確定相關(guān) 聯(lián)的第二指令集推導(dǎo)出所述第一指令集。
8、 根據(jù)權(quán)利要求7所述的方法,還包括 從所述第二指令集推導(dǎo)出第三指令集;以及執(zhí)行所述第三指令集以提供法線界限。
9、 根據(jù)前述任一權(quán)利要求所述的方法,其中,接收第一表示的步驟還包括如果所述頂點組中的頂點數(shù)超過閾值,則將所述頂點組劃分成至少兩 個子組,其中,所述至少兩個子組包括與關(guān)聯(lián)于頂點位置確定的同一指令集相 關(guān)聯(lián)的頂點。
10、 根據(jù)前述任一權(quán)利要求所述的方法,其中,確定第二表示的步驟 還包括計算所述頂點組的所述第二表示;以及 將所述頂點組的所述第二表示存儲在存儲器中。
11、 根據(jù)權(quán)利要求1-9中任意一項所述的方法,其中,確定第二表示的步驟還包括從存儲器中取回所述頂點組的所述第二表示。
12、 根據(jù)前述任一權(quán)利要求所述的方法,還包括 從所述頂點組中選擇至少一個頂點;對所述至少一個頂點的第一表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的指令 集,以提供所述至少一個頂點的第二表示;以及對所述至少一個頂點的所述第二表示進(jìn)行剔除處理,其中,所述剔除 處理的結(jié)果包括以下兩種決定中的一種剔除所述至少一個頂點的決定;以及不剔除所述至少一個頂點的決定,并且在所述剔除處理的所述結(jié)果包括剔除所述至少一個頂點的決定的情況 中,執(zhí)行以下步驟接收頂點組的第一表示; 確定所述頂點組的第二表示;對所述頂點組的所述第二表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的指令集,以提供所述頂點組的第三表示;以及對所述頂點組的所述第三表示進(jìn)行剔除處理。
13、 根據(jù)前述任一權(quán)利要求所述的方法,還包括 對包圍所述頂點組的所述第三表示的包圍體進(jìn)行確定;以及 對所述包圍體進(jìn)行剔除處理。
14、 根據(jù)權(quán)利要求13所述的方法,其中,對所述包圍體進(jìn)行剔除處理 的步驟還包括執(zhí)行以下操作中的至少一個對所述包圍體進(jìn)行視域剔除; 對所述包圍體進(jìn)行背面剔除;以及 對所述包圍體進(jìn)行遮擋剔除。
15、 根據(jù)前述任一權(quán)利要求所述的方法,其中,所述第三表示是由位 置邊界和法線邊界構(gòu)成的組中的至少一種邊界。
16、 根據(jù)權(quán)利要求15所述的方法,其中,對所述第三表示進(jìn)行所述剔 除處理的步驟還包括執(zhí)行以下操作中的至少一個對所述位置邊界進(jìn)行視域剔除;對所述位置邊界或所述法線邊界進(jìn)行背面剔除;以及 對所述位置邊界進(jìn)行遮擋剔除。
17、 一種用于生成數(shù)字表示的圖形的裝置,其包括用于對數(shù)字表示的 圖形的生成性能進(jìn)行改善的電路,所述電路用于接收頂點組的第一表示; 確定所述頂點組的第二表示;對所述頂點組的所述第二表示執(zhí)行與頂點位置確定相關(guān)聯(lián)的第一指令 集,以提供所述頂點組的第三表示;以及對所述頂點組的所述第三表示進(jìn)行剔除處理。
18、 一種計算機程序產(chǎn)品,包括存儲在計算機可讀存儲介質(zhì)上的計算 機程序代碼,并且當(dāng)在處理器上執(zhí)行所述計算機程序代碼時,所述計算機 程序代碼執(zhí)行根據(jù)權(quán)利要求1-16中的任意一項所述的方法。
全文摘要
一種用于對數(shù)字表示的圖形的生成性能進(jìn)行改善的方法。所述方法包括接收頂點組的第一表示;基于所述第一表示來確定所述頂點組的第二表示;對所述頂點組的所述第二表示執(zhí)行第一指令集,以提供所述頂點組的第三表示,所述第一指令集與頂點位置確定相關(guān)聯(lián);以及對所述頂點組的所述第三表示進(jìn)行剔除處理。本發(fā)明還披露了相對應(yīng)的裝置和計算機程序產(chǎn)品。
文檔編號G06T15/40GK101639767SQ20091016509
公開日2010年2月3日 申請日期2009年7月30日 優(yōu)先權(quán)日2008年7月30日
發(fā)明者J·哈塞爾格倫, J·蒙克貝里, P·克拉爾貝里, T·阿可尼內(nèi)-默勒, V·米耶蒂寧 申請人:英特爾公司