TWI517090B - 階層式移動模糊柵格化技術 - Google Patents
階層式移動模糊柵格化技術 Download PDFInfo
- Publication number
- TWI517090B TWI517090B TW100147979A TW100147979A TWI517090B TW I517090 B TWI517090 B TW I517090B TW 100147979 A TW100147979 A TW 100147979A TW 100147979 A TW100147979 A TW 100147979A TW I517090 B TWI517090 B TW I517090B
- Authority
- TW
- Taiwan
- Prior art keywords
- tile
- test
- triangle
- moving
- edge
- Prior art date
Links
- 238000012360 testing method Methods 0.000 claims description 165
- 239000011449 brick Substances 0.000 claims description 22
- 238000000034 method Methods 0.000 claims description 19
- 230000002123 temporal effect Effects 0.000 claims description 14
- 238000005070 sampling Methods 0.000 claims description 8
- 241000254158 Lampyridae Species 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 229910003460 diamond Inorganic materials 0.000 description 8
- 239000010432 diamond Substances 0.000 description 8
- 102100025444 Gamma-butyrobetaine dioxygenase Human genes 0.000 description 6
- 101000934612 Homo sapiens Gamma-butyrobetaine dioxygenase Proteins 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000036962 time dependent Effects 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012812 general test Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102000020897 Formins Human genes 0.000 description 1
- 108091022623 Formins Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20182—Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Processing Or Creating Images (AREA)
Description
本發明係有關圖形處理技術,更特別係有關對於移動模糊的圖形繪示。
本發明係有關圖形處理技術,更特別係有關對於移動模糊的圖形繪圖。
移動模糊是一種很重大的可見影響,其會減少時間混疊並使得運動內容看起來更為平滑。然而,在即時三維圖形中對於移動模糊的有效顯現是非顯然的。
在對於移動模糊的隨機柵格化中,運動幾何基元在空間和時間中都被取樣,利用大量的樣本集合來獲得高品質的具有低雜訊位準的經移動模糊影像。對於各個這些樣本位置,係會執行一個內側測試來判定此運動基元是否覆蓋此樣本。在x、y和t空間中的此重疊測試通常會比傳統柵格化器之內側測試更為昂貴。
依據本發明之一實施例,係特地提出一種用於移動模糊柵格化之方法,其包含下列步驟:逐地磚地遍歷由一個運動三角形所覆蓋的一個螢幕空間區域;針對各個地磚,識別出與該運動三角形重疊的數個時間區段;以及相對於該運動三角形,測試在該地磚內且在所識別出之該等時間區段中的數個樣本。
依據本發明之另一實施例,係特地提出一種儲存有指令的非暫時性電腦可讀媒體,該等指令使得一個處理器能夠進行下列步驟:逐地磚地遍歷由一個運動三角形所覆蓋的一個螢幕空間區域;針對各個地磚,識別出與該運動三角形重疊的數個地磚區段;以及相對於該運動三角形,測試在該地磚內且在所識別出之該等時間區段中的數個樣本。
依據本發明之又一實施例,係特地提出一種設備,其包含:一個處理器,用於進行下列步驟:逐地磚地遍歷由一個運動三角形所覆蓋的一個螢幕空間區域,針對各個地磚,識別出與該運動三角形重疊的數個地磚區段,及相對於該運動三角形,測試在該地磚內且在所識別出之該等時間區段中的數個樣本;以及耦接至該處理器的一個儲存體。
第1圖是依據一個實施例的對於移動模糊柵格化的一個圖示;
第2圖是依據一個實施例的對於螢幕空間中的一個地磚之繪示;
第3a圖是對於各個平截頭體平面之測試的繪示,此測試係相對於在該平面之法線之負方向中最遠的頂點,以裁定運動框盒是否覆蓋此平截頭體;
第3b圖示出一個事例,其中,此框盒只短暫位在遠平面之內側,且其在另一個平面內側僅朝向此運動行為之對端;
第4圖示出在由在時間0與時間1間之線性內插所運算出的掃掠框盒與在每個時間緊密定界出三角形之對齊於掃掠軸的定界框盒(bounding box)之間的在定界緊密度上之差異。
第5圖依據一個實施例,示出被投影在螢幕空間中的一個定界框盒;
第6圖依據一個實施例,針對一個特定螢幕空間位置,以t之函數示出邊緣方程式;
第7a圖示出,被投影在四個地磚角向量的三個控制點導致針對各個bi係數的區間;
第7b圖示出對於貝齊爾(Bzier)曲線之細分,以作出更緊密的測試;
第8圖示出對於導致完全在內側或完全在外側的兩個位元遮罩的時間區間之保守柵格化;
第9圖依據一個實施例示出一個三角形,其移動越過一個螢幕空間;
第10圖示出貝齊爾截割的兩個範例;
第11a和11b圖是一個實施例的流程圖;
第12圖是對一個實施例的概略繪示。
由於效能因素,係冀望減少受測的樣本集合,以使得只有可能會與運動基元重疊的樣本會被測試。這可係藉由將取樣空間劃分成時間性或空間性子區域、以及針對這些區域運算粗略重疊測試來完成。係可使用這些測試來以粗略等級捨棄大型樣本集合,因而避免許多逐樣本內側測試。
係可將一個隨機柵格化器描述為:
對於每個三角形
BBOX=運算三角形定界框盒
對於在BBOX中的各個樣本
對三角形測試樣本
一個三角形的各個頂點都在空間中運動,所以運算一個緊密定界框盒以及在由空間和時間維度所翼展的三維空間中對運動三角形作可視性測試可能會是很困難的。係冀望要減少受測樣本的體積,以增進效益。此隨機柵格化方法可係聚焦在運算三角形定界框盒步驟,利用針對在螢幕空間中圈圍運動三角形的緊密適入定界體積的一個物件導向定界框盒(oriented bounding box,OBB)或凸包。以區間為基礎的柵格化分割時間域並個別地定界各個組織層。基於交叉取樣的柵格化也是類似的,但只使用某個固定數量的離散時間。
一種階層式移動模糊遍歷演算法係逐地磚地遍歷由一個經模糊化三角形所覆蓋的螢幕空間區域。針對各個地磚,與運動三角形的時間重疊會被運算。接著,在重疊的地磚和時間區段內的所有的樣本會相對於運動三角形被測試。可將此演算法概括為:
對於各個三角形
BBOX=運算三角形定界框盒
對於在BBOX中的各個地磚[階層式遍歷]
TIME=運算重疊的時間區段
在TIME內對於地磚中的各個樣本
相對於三角形測試樣本
對於逐地磚時間界限的運算可大大地減少針對快速運動三角形的受測的時間性樣本數,因為在此地磚內的時間性樣本的大型子集可被捨棄。第1圖示出,可將螢幕劃分成多個地磚T,且各個地磚係相對於運動三角形S而被測試。此地磚測試針對在螢幕空間地磚與運動三角形之間的重疊而運算保守時間界限,這可顯著地減少個別樣本測試的數量。進行逐樣本測試的區域是被標示為白色的區域,其在第1圖中被以粗線圈圍。左邊的圖示出空間域,右邊的圖示出時間域。
就目前而言,焦點會是在上面的碼中之「TIME=運算重疊的時間區段」步驟上。針對某一個地磚的輸出不是平凡拒絕(trivial reject)就是可能會發生重疊的一個保守時間區段。在一些事例中,亦可進行平凡接受(trivial accept)測試來判定出地磚總是與三角形重疊。
在一般程度上,係可將此演算法理解為測試一組運動定界平面,相對於一個螢幕空間地磚定界出一個或一個集合的個別基元。運動平面可為在二維同質空間中之運動三角形的邊緣,或者是圈圍此運動三角形的一個任意定界框盒的平面。在許多事例中,考慮此螢幕空間地磚到三維空間中的一個平截頭體之延伸是很便利的。此地磚的側邊接著界定出這些磁磚平截頭體平面,我們可相對於其測試移動中基元。在選擇座標框架和定界平面上,這些測試的一些所致成本可被大幅減少,並仍提供高品質的空間與時間界限。
第2圖示出在螢幕空間,即,xy平面,中的一個地磚,其界定出在三維空間中的一個平截頭體。此地磚T的四個側邊各延伸到一個獨特地磚平截頭體平面FP中,並且這些平面的交集構成此平截頭體。左邊的圖示出從上面投影在xz平面中的情況,右邊的圖係從前面示出。當運作於二維同質座標中時,z軸係由w取代,且這些平面係界定於xyw空間中。在一些事例中,可能會想要增加兩個額外的平截頭體平面,分別代表近和遠截割平面。
這些測試被劃分成兩種類別。TileBox表示地磚對運動定界框盒重疊測試,其中圈圍運動中基元的定界平面係被相對於螢幕空間地磚平截頭體作重疊測試。若這些定界平面係與平截頭體平面對齊,則此測試可被最佳化。
另一個類別,以TileEdge表示,代表地磚對運動三角形邊緣重疊測試,其中此螢幕空間地磚的隅角係在二維同質空間中被相對於運動三角形邊緣作測試。在線性頂點移動的情況下,各個三角形邊緣掃略出一個雙線性補塊,其使得此重疊測試會稍微比TileBox測試更為昂貴。
TileBox測試典型上較不昂貴,且可被施加至個別三角形也可被施加至一群三角形。TileEdge測試係具有稍微較高的成本,且僅可被施加至個別三角形,但對於緩慢運動三角形而言,其界限常常會較為緊密。可藉由首先針對地磚平截頭體的各個平面執行TileBox測試,然後是相對於地磚隅角之針對三個三角形邊緣的TileEdge測試,而將這兩種測試組合。在一些實施例中,這兩種測試的順序可被調換。所導出的界限是緊密的,且經組合的測試對於具有各種三角形大小和移動的情況來說是很健全的。
對於一個給定螢幕空間地磚而言,運動框盒/邊緣重疊測試可平凡拒絕(TR)一個地磚或減少需要被測試的樣本量。係可額外地使用一些TileEdge測試來平凡接受(TA)此地磚內的一組樣本,在更精細的層級上保留階層式遍歷步驟。
TileBox和TileEdge測試係由例示於第11a和11b圖中的序列實施。此序列係可被實施在,例如,軟體、韌體或硬體中。此序列例示出由下面的偽碼中之函式ProcessTile()所進行的操作。在第11a和11b圖中,操作「|」係運算時間區間之聯集,且「&」係運算交集。此外,類似於C程式規劃語言,於此偽碼中,例如,A=A|B是寫成A|=B,且A=A & B是寫成A &=B。
一開始,在方塊8,值TR被設為等於空,且TA被設為等於滿。接著,在方塊10,平截頭體平面被設為等於i。接著在方塊12,找出最遠的定界框盒隅角j。接下來,利用TileBox運算出值TR(i,j),如於方塊14中所指出的。接著,TR被設為等於TR和TR(i,j)之聯集,如於方塊16所指出的。在菱形18的一項檢查判定出這是不是最後的平面。若否,則此流程迭代。
否則,此流程繼續前進到將邊緣設為等於k,如於方塊20中所指出的。此地磚隅角接著在方塊22中被設為等於j。如於方塊24中所指出的,TA(k,j)和TA(k,j)係利用TileEdge而被運算出。接著在方塊26中,TA被設為等於TA和TA(k,j)的交集,且TR(k)被設為等於TR(k)和TR(k,j)的交集。在菱形28的一項檢查判定出這是否為最後的隅角,若否,此流程迭代回方塊22。否則,其前進到第11b圖。
在第11b圖中,TR在方塊30中被設為等於TR和TR(k)的聯集。接著在菱形32的一項檢查判定出這是否為最後的邊緣。若否,此流程回到第11a圖中的方塊20。若它是最後的邊緣,則此流程繼續前進來在菱形34中判定TR是否為滿。若是如此,則如由方塊36所指出的,此地磚被捨棄。否則,在菱形38中的一項檢查判定出TA是否為滿。若是如此,則在此地磚中的這些樣本之片段在方塊39中被產生。否則,在菱形40的一項檢查判定出此螢幕空間地磚是否為一個葉。若是如此,則這些片段會被產生,且內側測試是基於TA和TR的d1,如於方塊46中所指出的。否則,針對子地磚的各個子代,ProcessTile(CHILD)會被遞迴地呼叫,如於方塊48中所指出的。
在下面的偽碼中,平凡拒絕(TR)和平凡接受(TA)分別係指涉一個三維空間性時間性取樣的可被平凡地接受或拒絕的空間子集。此子集係藉由下式定義:
[X min ,X max ]x[Y min ,Y max ]x[t min ,t max ].
空間延伸係由螢幕空間地磚的一個階層自然給定,並且時間延伸係由地磚測試運算出。係可將這些時間延伸儲存為實際時間區間或被離散化到位元遮罩中的時間區間。在下面的這個偽碼中,操作|係運算時間區間的聯集,且&係運算交集。對於這些的實施係取決於時間區間被如何儲存。例如,若係使用被離散化的位元遮罩,則他們可分別係利用樣本邏輯位元操作OR和AND而形成。
於高層級,係可如下寫出利用兩種測試的一個階層式遍歷演算法:
對於各個三角形
BBOX=運算三角形定界框盒
對於BBOX中的各個地磚
呼叫ProcessTile(tile)
其中函式ProcessTile係實施為:
在上面的碼中,若TR指出地磚(tile)可在所有的時候被拒絕,我們可亦進行對此地磚的提早捨棄(discard)。這只是組合測試和進行遍歷的一種可能的方式。
我們現在來討論在螢幕空間地磚與具有線性逐頂點移動的一個基元之線性運動定界框盒之間的重疊測試。此運動定界框盒於t=0和t=1分別具有頂點q i和r i。其於任何給定時間t的頂點係由如p i(t)=(1-t)q i+tr i=q i+t(r i-q i)的線性內插給定,其中r i-q i項是在定界框盒已設立時可被預先運算的一個移動向量。線性運動定界框盒是保守的,但使時間重疊測試較不昂貴。
係可在包括歐幾里得(Euclidean)空間的三維空間、二維同質空間或二維螢幕空間中施用這些測試的不同變體。除了z分量被w取代以外,在二維同質空間中的這些測試是與在歐幾里得空間中的相同。首先討論相對於一組地磚平截頭體平面之對於運動物件導向定界框盒(OBB)的一般測試,然後是針對常見事例,例如三或二維中之運動軸對齊定界框盒(axis aligned bounding boxes,AABB),的經最佳化變體
基於在螢幕上的一個地磚,可將四個平截頭體平面FP與此地磚的側邊對齊,如於第2圖中所示。此外,亦加入分別代表近和遠截割平面的兩個平面。各個平截頭體平面,Πi,係由其平面方程式n i‧p+d i =0定義,其中n i為此平面的法線,而di是一個偏移。若n i‧p+d i 大於0,則點p是在此平面外側。若一個點是在所有的平面內,則其是在此平截頭體內側。
係意欲要相對於一個線性運動物件導向定界框盒,而測試這些平截頭體平面,並且選擇性地運算出當中此框盒可能會與此平截頭體交集的一個保守時間區段。首先,這些平截頭體平面被轉換成此物件導向定界框盒的本地框架,這會減少對於平面移動軸對齊定界框盒測試的問題。在一般的事例中,對於一個平面的到經轉換平面,π’i,之轉換,πi=[nix,niy,niz,di]T,係由π’i=(M-1)Tπi給定,其中M為將此平截頭體之座標框架中的一個點轉換成導向定界框盒之座標框架的4x4矩陣。
對於靜態幾何而言,測試在有關Πi之負(negative)方向中最遠的此軸對齊定界框盒之一隅角(n頂點)便足以判定出此框盒是否與此平面交集。這點對於線性運動定界框盒而言亦然,因為定界框盒和平截頭體平面的定向在移動中維持恆定。此平面的法線n i之正負號位元正確地決定哪個隅角為n頂點。
在第3A圖中,我們在一個平截頭體平面FP的各邊有兩個定界框盒Bit0和Bit1。我們相對於在有關此平面的負方向中最遠的頂點而測試此平截頭體平面FP,以找出此運動框盒是否與平截頭體平面FP重疊。在移動中,此頂點從Vit0運動到Vit1。我們可額外解出交集的時間ti。
若由於此運動定界框盒從不與此地磚重疊故此地磚可被平凡拒絕,則平凡拒絕測試回傳(return)真(true),否則便回傳偽(false)。軸對齊定界框盒的這些定界框盒頂點在時間t=0是被表示為q i,且在時間t=1時之對應的頂點是被表示為r i。此運動軸對齊定界框盒之n頂點係給定為1p n(t)=(1-t)q n+tr n,其中t[0,1]。為了判定一個定界框盒是否與此平截頭體平面(frustum plane)交集,我們相對於此平面測試兩個點p n(0)=q n和p n(1)=r n。若這兩個點都在外側,則我們可以平凡拒絕此框盒,因為在下面這個簡單內側測試中,它永遠都不會在內側:
其中n_i代表經轉換平截頭體平面法線。並不一定要使這些平面方程式被標準化。一個硬體實作可藉由設立永遠具有等於1.0的一個分量的平面法線而對每個點積避免一個乘法來對此作開拓。此外,這些比較式正常係藉由將di移動到這些比較式的右手邊來完成,而將成本減少成每平截頭體平面四個乘法/加法(multiply/add,MADD)。另一種最佳化是利用這項事實,即,近和遠平面是平行的。因此,對於這兩個平面只需要運算點積q n ‧n i and r n ‧n i 一次,然後使用不同的di。
此時間重疊測試首先進行一項平凡拒絕測試,並接著運算在運動定界框盒與地磚平截頭體之間的時間重疊。若此測試通過,則其回傳當中此運動定界框盒可能會與地磚重疊的一個保守時間區間重疊。這可,例如,在一個階層式移動模糊柵格化器中被用來導引遍歷。
在運動n頂點與平面之間的在時間中之交集點係由下式給定:
分子和分母中的兩個項是在平凡拒絕測試中所需的,所以額外的成本是一個減法和除法。只要結果總是會被保守地修整,則此減法可係在硬體中以一種非常低精確度作成。
對於針對所有平截頭體平面的組合式重疊測試,我們從滿區間[t min,t max]=[0,1]開始,並利用最小和最大操作來逐步精鍊它。若此區間曾經變成空,即,tmin大於tmax,則我們可以作出一個提早外出,因為在時間中沒有任何此運動框盒會與平截頭體重疊的點。這捕捉了一些這樣的事例,它們通常會被錯誤地分類成內側。一個範例係示於第3B圖中。在第3B圖中,此框盒僅短暫地處於遠平面內側,且其僅在另一個平面內側朝向此運動之相對端。在時間中並沒有任何使其同時處在這兩個平面內側的點,所以可避免錯誤肯定(false positive)。下面的偽碼例示出此演算法:
對於階層式測試而言,在上面的兩個演算法中,我們已經作出所有的六個平截頭體都需要被測試這樣的假設。然而,若這些測試是被階層式地施用,則常常是可以節省運算的。視所使用的是哪種階層而定,會有兩種不同的情況。
其一,若螢幕具有一個較小子代地磚階層,則這些子代地磚一般而言將會會共享一或多個其父代地磚的平截頭體平面。可針對這樣的平面而再利用平凡拒絕測試和時間重疊運算的結果。例如,若一個螢幕空間地磚被係分成四個較小地磚,則各個這樣的地磚都會與較大地磚共享兩個平截頭體平面。此外,近和遠平截頭體平面對於所有的地磚而言都是相同的,所以他們只需要針對各個定界框盒被測試一次。
其二,若這些測試是被施用到一個運動定界框盒階層,例如在光線追蹤應用中,並且一個運動定界框盒在一些階段中是完全處於一個平截頭體平面內側,則相對於同一個平面測試其子代框盒是不必要的,因為這些子代框盒保證也會處於內側。在每個階層式層級做這件事以及遮斷(mask out)相關平面,會需要在時間t=0和t=1相對於這些平面測試在正(positive)方向上最遠的頂點(p頂點),這基本上會使測試的成本加倍,並且通常都不會回本。然而,運動補塊很少會與近/遠平面交集,所以我們從於根層級相對於這些平面測試p頂點開始,並且,若可以的話,以較不昂貴的四個側邊平截頭體遍歷繼續。
當判定出具線性頂點移動的一個運動三角形是否與一個螢幕空間地磚重疊時,我們可藉由與相機座標框架對齊的一個運動軸對齊定界框來對此運動三角形定界,而非如在先前論述中所提的運動OBB。這可給出粗略的界限,但此測試較不昂貴。
下面的觀察使此測試更有效益。這些地磚平截頭體平面並不需要被轉換成定界框盒的座標框架。這些平截頭體平面中的四個會通過原點。所有的平截頭體平面法線都具有至少一個等於0的分量,並且,由於標度不變性(scale invariance),我們可以如上地將一個其他分量設為1。因此,與一個平截頭體平面法線的各個所涉及點積會減少到單一個MADD操作。
利用這些觀察,可寫出對於平凡拒絕測試和時間重疊測試的最佳化版本。僅有的差異是,這些平截頭體平面並不需要被轉換,並且一般點積係被取代成更有效益的運算。舉例來說,因而以n=(1,0,-x)的向外法線和d=0,針對在二維同質座標中通過點(x,0,1)之右平截頭體平面的第1式被簡化成:
其他平截頭體平面也有類似等式。
我們可亦增加更多定界平面。若我們將我們的基元界定在繞w軸旋轉45°的一個座標系統中,我們可藉著由x-y和x+y所界定的軸而在經旋轉座標系統中針對時間重疊作測試。這使得對於斜角運動基元而言,所運算出來的時間重疊比在只有使用一個軸對齊定界框盒時更為緊密。
上面所論述的測試係描述在三維中的線性逐頂點移動,這是一般情況,並避免相對於視野平截頭體截割運動基元的複雜問題。當投影到螢幕空間時,頂點的線性運動會變成一個比例線性函數,而使得重疊測試更為複雜。然而,對於在螢幕空間中之線性逐頂點移動的特殊情況而言,重疊測試可更進一步被簡化。這在配合於螢幕空間中線性運動之基元運作的一些應用中可能會是很有用的。
在螢幕空間中的運動三角形可利用一個二維軸對齊定界框盒被定界,並且與由地磚邊沿所界定的平截頭體平面之交集會被運算出來。例如,在座標x的右地磚邊沿以n=(1,0,0)和d=-x界定出一個平截頭體平面。第1式被精簡成:
其中分母可被預先運算。係對其他平截頭體平面施用類似的等式。因此,可利用單一個MADD操作來獲得相對於此平截頭體平面的一個運動軸對齊定界框盒之交集的時間。
這些地磚對運動定界框盒測試會利用從在t=0和t=1之緊密定界框盒所線性內插出來的一個定界框盒而定界出運動三角形。因此,此定界框盒的頂點線性地運動,這簡化了測試。應注意,這些運動定界框盒一般是極度保守的。這有兩個原因。
其一,視個別三角形頂點的移動而定,在一些情況中,定界框盒在介於兩個時間端點之間的一個給定時間t並不緊密地圈圍此三角形。這在移動過程中頂點相對於定界框之座標軸而言改變順序時會發生。若我們針對各個時間t置放三角形並運算緊密界限,係可達到一個較為緊密的定界框盒。第4圖示出在二維中的一個範例,特別標示在一個線性運動定界框盒與在每個時間t緊密定界出此三角形的一個定界框盒間之定界緊密度上的差異。若運動三角形頂點的路徑交集,如其於左邊的圖中所做的,則框盒SB2會比線性運動框盒SB1緊密。然而,對於縮放和轉譯而言,如於右邊的圖中,線性運動定界框盒會提供緊密界限SB。
其二,當三維或二維同質空間中的定界框盒被投影到螢幕空間時,此投影一般並不會緊密定界出此三角形。這是在定界框盒之投影上的一個一般性問題,而非特定於我們對於線性運動定界框盒之使用。第5圖例示出在二維同質座標中的一個範例。在這個事例中,可藉由在以w作除法之後於各個時間定界此三角形的頂點,來達到較緊密的螢幕空間界限。此定界框盒現在係由次數為一的數個分段比例多項式來界定。係有可能相對於螢幕空間地磚而與這些多項式交集,以在時間中運算出更為緊密的界限,但運算成本可能會較高。
當此三角形的頂點在三維中線性地移動時,各個三角形邊緣會掃掠出一個雙線性補塊。對應的時間相依邊緣方程式在時間t是二次的。為了判定出一個螢幕空間地磚是否與此運動三角形重疊,我們可以針對此地磚的四個隅角而評估此三角形的三個時間相依邊緣等式,並檢查是否有任何隅角係處於所有三個邊緣內側。並且,若我們可以判定出當中此三角形係與地磚重疊的精簡時間範圍,則逐樣本內側測試的數量可被減少。
此測試有四個變體,其判定出螢幕空間地磚與運動三角形的時間性重疊。第一種測試是以分析性地運算地磚重疊的時間區間為基礎。此方法可運算出最緊密時間區間,但它可能會有點昂貴。第二種測試亦針對各個地磚隅角分析性地解出二次多項式,並使用寬廣位元遮罩來有效地運算平凡接受或拒絕遮罩。第三種版本是基於貝齊爾截割的一個經最佳化測試,其有效地運算出保守時間重疊。在這個類別中亦有一個經線性化的運動邊緣測試。此測試的第四種變體利用區間算術來避免對於在各個地磚隅角之重疊的個別解出。此測試亦運算極度保守時間區間。
在時間連續三角形的情形,各個頂點,p i,線性地從在t=0的位置q i移動到在t=1的位置r i,即:
p i (t)=(1-t)q i +t r i .
所有的運算都是以被定義為p=(x,y,w)的頂點,於二維同質座標中在頂點的正射投影中進行。然而,係可針對線性地於二維而非二維同質空間的螢幕空間中運動之三角形之事例,來導出類似的測試。
對於時間連續三角形(time-continuous triangle,TCT)的邊緣等式可如下寫成:
e(x,y,t)=a(t)x+b(t)y+c(t)
其中(x,y)是在螢幕空間中的一個樣本位置,t是時間參數、且a、b、c是t的二次多項式,例如,a(t)=a 2 t 2 +a 1 t+a 0 。因此,我們可以將此邊緣等式重寫成:
所以,對於一個特定樣本位置,(x,y),而言,我們可解出t來找出當中e小於0的時間區間(若有的話)。e=0的根為:
若β 2 -4αγ小於0,則沒有任何實數根,並且若e"=2α<0則整個時間範圍都在內側,或若e">0為正則在外側。當β 2 -4αγ為負時,α和γ都必須為非零,故對此事例而言,α≠0。
否則,我們會有最大為兩個的根,且對於每個邊緣而言將會有上至兩個的時間區間,=[ t ,](可能包括正和負無限),其中點(x,y)是在此邊緣之內側上,且e小於0。請注意,我們係使用t和來分別表示時間區間的下/上界限。在一個點(x,y)和一個運動三角形邊緣之間的時間重疊,,是以這些區間的聯集來給定。
在第6圖中,係將邊緣等式示為針對一個特定位置(x,y)的t的方程式。我們想要找出當中e小於0的時間區間。
以對於運算在一個點和運動邊緣間之時間重疊的基本操作,係可實施各式各樣的地磚測試。我們運算在此地磚之四個隅角的時間重疊。讓,為對於邊緣k={1,2,3}之在隅角j{1,2,3,4}的重疊。各個可包含有上至兩個的不同時間區間。當中地磚可能與TCT重疊的這些時間區間係由下式給出:
這個的基本原理是,內部部份,,運算當此地磚的任何部份是處於邊緣k內側時的時間區間,並且這些時間區間的交集會給出此地磚可能係處於所有三個邊緣內側的時間區間。時間t的所有樣本都可被平凡拒絕。我們可在於邊緣上的外部迴圈之各個迭代之後對細緻平凡拒絕作測試,也就是在各個都已經被運算之後。由上式所運算出來的這些時間區間可為極度保守的,並且此測試是屈從於錯誤肯定。因此,要得到較為緊密的時間界限,會想要將其與地磚運動界限框盒測試組合。
也可能運算出當地磚可被平凡接受時的時間區間,藉由如下採用所有的交集:
亦即,處於所有三個邊緣之內側的所有地磚隅角的時間。在實務上,要直接以時間區間運作可能會是很困難的,因為離散區間的數量可能會隨著聯集/交集操作而增大。一個可能的實作,是讓專用的被以可發生的離散區間之最大數量設計的硬體來處置區間的聯集/交集。可利用具有小量位元的固定點來額外地儲存區間界限,以節省運算。
對於時間區間的量化方面,我們假設樣本域被劃分成時間中的N個筐槽,其中,例如,若使用32位元遮罩則N=32,其中筐槽i={0,...,N-1}處置時間t [i/N,(i+1)/N]的樣本。
對於一個給定螢幕空間位置,(x,y),以及三角形邊緣k而言,我們首先如於上文中所述地解出其中e<0的時間範圍,並接著保守地將這些時間範圍柵格化成具有N個位元的一個一維位元遮罩。此步驟可以很容易地以位元操作來完成。下限(包含性的)的位元位置係由 b = t N 給定,並且上限(不包含性的)係由=[ N]給定。此二者可很容易地藉由操作((1<< b )-1)⊕((1<<)-1),即,在分別從位元0到位元 b -1和-1為一而後面為零的兩個位元遮罩之間的互斥或(XOR),而被轉化成位元遮罩。
對於各個邊緣k={1,2,3},結果是一個位元遮罩,TAk,其指出在哪些時間筐槽上點(x,y)保證是在此邊緣之內側上。此遮罩可擁有上至兩個的不相接的一序列,例如TAk=1111110000011111(其中N=16)。我們類似地運算一個相對遮罩,TRk,其指出在哪些時間筐槽中此點保證是在此邊緣之外側,即e>0之處,例如TRk=0000000111000000。請注意,在這兩個遮罩中,為0的位元係指出其中點(x,y)從在一個邊緣之內側往外側前進,或反之,的筐槽,如於第8圖中所例示的。在第8圖中,對於時間區間的保守柵格化會導致完全在內側(TA)或外側(TR)的兩個位元遮罩,如於圖中所繪示的。
最後,這三個遮罩TAk藉由如下運算個別量塊之及(AND)而被合併成單一個內側遮罩:TA=TA 1 & TA 2 & TA 3。由於這三個邊緣各可擁有最大為兩個的不相接區間,理論上,TA可擁有最大為四個的不相接時間區間。請注意,我們係將這些TRk遮罩保持為分開的。這四個遮罩指出哪些時間區間樣本被保證是在三角形內側或是在此三角形的個別邊緣之外側。
在階層式遍歷方面,對於運動三角形的螢幕空間定界框盒被劃分成粗略網格,例如16x16個像素地磚。對於各個地磚隅角,我們運算出位元遮罩TAk和TRk。我們藉由數字j={1,2,3,4}來表示目前地磚的隅角,以數字k={1,2,3}表示運動邊緣,個別位元遮罩是TAjk和TR jk 。
這些遮罩係利用邏輯操作而逐地磚地被組合成單一個平凡接受遮罩和單一個平凡拒絕遮罩,如於上面的偽碼中所描述的,其中TA(k,j)和TR(k,j)分別表示TAjk和TR jk 。
於此碼中,TA的位元指出受測的地磚被保證是完全由運動三角形所覆蓋的時間片段。類似地,TR指出在哪些時間區段中,所有的四個地磚隅角都同時處在一或多個邊緣外側。若所有的位元都被設定,則此地磚被保證是不與運動三角形重疊,並且我們捨棄此地磚,如於第9圖中所示的。第9圖示出一個三角形的一個範例,此三角形如所例示地移動越過螢幕。此三角形是由標示為一、二和三的三個時間連續邊緣所組成。我們現在著眼於地磚T,並針對隅角j和邊緣k運算TR jk 位元遮罩。其個別交集給出當中此地磚係在給定邊緣外側的時間片段,如於右邊所示出的。針對一個邊緣的所有的遮罩都被一起作AND,以找出當中係可平凡拒絕此地磚的時間筐槽。所致遮罩的聯集指出可平凡拒絕此地磚的時間筐槽。
無論何時,當這兩個條件的其中一個不被滿足時,我們便階層式地將此地磚細分,直到達到最小的地磚大小,例如,2x2個像素,為止,在這階段,內側測試係僅針對在無法被含糊分類成平凡拒絕或平凡接受的時間筐槽中之樣本進行。
在遍歷的早期,是有可能開始寫出針對被分類成平凡接受的時間筐槽之樣本。然而,這並不會節省運算,因為我們仍需要細分,並且運算位元遮罩有逐地磚隅角的固定成本。也有可能會增加所需簿記,因為我們會需要追蹤哪些時間筐槽已經被寫出。
為了運算和快取新的網格點,當地磚被細分時,我們需要在各個子代地磚的四個隅角運算TAk和TRk位元遮罩。許多這些隅角可能會與先前所運算的螢幕上位置衝突,並且因此,快取和再利用經運算位元遮罩是很有用處的。若此地磚被細分成四個子代地磚,則係運算對於最多五個新位置的位元遮罩:一個在此地磚的中心,和沿著此地磚之各個側邊中途的四點。
若一個點係直接處在TA=1...1的兩個點之間,則這個新的點可被直接設為TA=1...1。若此線的這兩個端點被保證總是位在TCT之內,則此中點也一定是在內側。類似地,對於各個邊緣而言,若於兩個端點皆為TRk=1...1,則新的中點也會直接得到值TRk=1...1。在所有的其他情況中,我們是進行先前所概述的步驟來運算位元遮罩。
所運算出的所有的位元遮罩都可被插入到一個快取中,並針對任何相鄰地磚而被再利用。此快取的大小可係藉由一個粗略地磚可被劃分成的地磚數來判定。例如,若我們以16x16個像素地磚開始,並在葉大小為2x2個像素停止,則會有(16/2+1)2=81個不同的點。各個點需要握持四個位元遮罩,假設這些遮罩在將其插入到快取前會被合併的話。係可在追蹤哪些位置已經被填入的一個適當大小的暫存器(例如,81位元暫存器)中處置快取簿記。
在許多情境中,三角形是線性地運動,以使得各個頂點都具有相同的移動向量,這表示邊緣等式的二次成份常常會是很小的。在這些情況中,直接針對t解出第4式會涉及以很小的二次係數所作的一個除法,這可能會導致數值不穩定性。因此,我們提供一種測試,它在邊緣等式接近線性時可平穩進行,並且在二次項成長時保守且穩健。
在二維同質空間中的兩個頂點之外積給出對應邊緣等式的係數。對於運動頂點而言,係可以伯恩斯坦(Bernstein)格式將此外積表示為:
p i (t)×p j (t)=(1-t) 2 c 0 +2(1-t)tc 1 +t 2 c 2 ,
其中,
因此,完全時間相依邊緣等式在伯恩斯坦格式上係表示為:
e(t,x,y)=((1-t) 2 c 0 +2(1-t)tc 1 +t 2 c 2 )‧(x,y,1).
對於一個給定地磚隅角χ j =(x j ,y j ,1)而言,內側測試變成在時間中的一個參數貝齊耳曲線(t),純量控制點為b i =c i ‧χ j ,i {0,1,2},如下式:
我們搜尋一個外部保守時間範圍,在此範圍中,地磚隅角是在運動邊緣內側,這等於針對此貝齊耳曲線何時可為負而判定出一個時間範圍。對於一個二次貝齊耳曲線,貝齊耳截割可提供這些界限。這是藉由對以示於第10圖中的直線v=0測試由具有(0,b0)、(0.5,b1)和(1.0,b2)之(u,v)座標的三個控制點所形成的三角形作交集測試來完成。如於第10圖中所示,針對一個二次貝齊耳曲線的保守交集時間係藉由使定界三角形邊緣與直線v=0交集而獲得。
對於相對於運動邊緣,ek,k{1,2,3},被測試的各個地磚隅角,χ j ,係可基於控制點,bi,以及與v=0之交集點的位置/正負號而運算出其中此隅角係有可能在邊緣內側的一個外部保守時間範圍=[ t jk ,]。例如,在第10B圖中,時間區間會是=[u0,1],因為最右邊的控制點,(1.0,b2),有小於0的b2。
一旦所有的三個三角形邊緣都已被測試之後,在地磚與運動基元之間的時間性重疊,,係由第5式給定。在外側的任何樣本都可像之前一樣被平凡拒絕。此測試並不如利用分析性運算出的時間重疊那樣緊密,因為界限是極度保守的。若我們在時間上有一個精簡的輸入範圍,t [ t ,][0,1],則貝齊耳曲線可針對較緊密測試利用標準伯恩斯坦細分而被再參數化,如於第7B圖中所示。
針對一個三角形的一種較快速的粗略平凡拒絕測試係藉由測試對於任何邊緣而言是否 b i >0, i來獲得。這是可運作的,因為控制點,bi,界定表示出在一個地磚隅角之邊緣等式的貝齊耳曲線之凸包。若其所有的控制點都處在0之上,則此邊緣等式可永不為負,且此隅角係位在此邊緣之外側。
此外,我們可運算一個內部保守時間範圍,,其中此隅角被保證是在此邊緣之內側。例如,在第10B圖中,內部保守時間區間會是=[u1,1]。將插入到第6式可給予我們一個極度保守平凡接受測試。也有可能藉由測試對於所有的邊緣而言是否maxi bi<0, i來界定一個粗略平凡接受測試。
在一個快速經定界邊緣測試中,取代於在內部迴圈中針對所有的四個地磚隅角利用貝齊耳截割運算,我們可以首先將邊緣等式控制點投影在各個這四個地磚隅角上,並使用貝齊耳曲線控制點之下界限,即,
來作為控制點。可將貝齊耳截割施用至此控制多邊形,而導致當中運動三角形邊緣係可能與地磚重疊的一個保守時間範圍。
在第7A圖中,被投影到這四個地磚隅角向量上的這三個控制點會導致針對各個bi係數的區間。可藉由相對於v=0從這些區間之下限測試此控制多邊形而導出針對可能重疊的一個保守時間區間。在第7B圖中,給定一個輸入時間區間,貝齊耳曲線可被再參數化,而導致準確淘汰和較為緊密的重疊時間範圍。
這簡化了內部迴圈,但此測試比之前的較為鬆散,並且我們不再能於沒有額外運算的情況下進行一個平凡接受測試。此平凡接受測試需要上界限,由控制點給定:
以及藉由對這個新的控制多邊形施用貝齊耳截割所發現的與v=0的額外交集點。亦運算一個保守平凡接受測試的額外成本對於具有適度移動的較大基元而言最為有用,其中在更細緻粒度上的許多重疊測試可被避免。對於大型移動和小型基元而言,此平凡接受測試可被省略。
在一個線性化的經定界邊緣測試中,一般邊緣測試的逐地磚成本可藉由以定界準確度換取較快速測試,而被更進一步地減少。我們利用具有固定斜率的直線而將二次邊緣等式投影定界在螢幕空間位置上。這些直線的斜率可在三角形設立時被運算出來。對於時間重疊測試的線性化可大大減少對於各個螢幕空間地磚所需的運算。在線性邊緣方程式的情況中,此測試具有與利用貝齊耳截割的一般測試相同的銳度。
在一個實施例中,這些直線的斜率可係利用貝齊耳曲線和區間算術來運算。回想起可以伯恩斯坦格式將對於邊緣k的時間相依等式寫成:
ek(t)=pi(t) x pj(t)=(1-t)2c0+2(1-t)tc1+t2c2.
對於一個給定地磚隅角χ j=(xj,yj,1)而言,至運動邊緣的距離,d(t),是具有純量控制點bi=χ j‧ci,i{0,1,2}的一個參數貝齊耳曲線:
d(t)=exj,yj(t)=χ j‧ek(t),
我們針對在此三角形之運動定界框盒內的任何χ j搜尋mint [0,1]d(t)。
為了簡化此逐地磚測試,我們想要線性化先前的等式,並將其寫成此形式:
d lin (t)=χ j ‧c 0+γt,
其中dlin(t)d(t),t[0,1]。我們藉由形成向量k10=2(c1-c0)和k20=c2-c0及找出其在與運動三角形的螢幕空間定界框內之χ相乘時的最小值,而針對γ導出界限。利用區間算術,螢幕空間界限係表示為=[,1],並且γ係由下式定界:
其代表針對運動三角形的螢幕空間定界框盒中之所有的χ而定界此二次曲線的下和上直線之斜率。
請注意,若時間相依邊緣等式為線性的,則是單一個值,且dlin(t)=d(t)。若此邊緣等式有大的二次項,則此線性表示型態是保守的。請注意,可係在三角形設立中被運算。
給定之下限,以 γ 表示,則此逐地磚邊緣測試可被可觀地簡化。藉由著眼於c0之正負號,我們只需要測試一個地磚隅角χ。運動三角形邊緣與地磚之交集的一個保守時間,dlin(t)=0,係由下式給定:
請注意,-c0/ γ 可被預先運算,所以運算時間重疊對各個邊緣而言僅花費2個MADD操作。視γ之正負號而定,我們可因而以邊緣k而將對於此地磚之時間性重疊,,的運算精簡為:
可藉由以區間算術表達螢幕空間地磚來導出另一個測試。運動三角形邊緣等式(第3式)可被寫成:
e(x,y,t)=αt 2+βt+γ (7)
若我們想要測試一個像素地磚,我們可以簡單地改變,而使得x和y取而代之地是區間格式,即和。因此,第7式變成:
其中=[ α ,]=a 2 +b 2 +c 2。我們從導出用於測試由和所界定的此地磚是否在某個範圍t [t s ,t e ]內總係在三角形外側的一種技術開始。
因為我們知道有效時間的範圍,所以我們選擇於此時間範圍的開始和結束來評估第8式。若(,t s )<0或(,t e )<0,我們終結此測試,因為運動邊緣保守地與地磚重疊。此保守測試只需要運算邊緣等式之下限,亦即,e<0是一個等效測試。對於在(,0)=的t=0時和對於在(,1)=的t=1時,這些評估變得尤其簡單。
此外,若我們想要將完整的時間範圍,t [0,1],切分成具有一樣大小的n個較小時間範圍,此評估可變得更為簡單。我們簡單地從t=0開始,第一個子時間區間係在t=1/n結束。具有一致步驟的對於多項式的評估可以前向差分很有效地為d1。簡言之,有一些設立工作被完成,並且接著某個數量的加法就是每個步驟所要做的所有工作。
另一個選擇是將頂點內插到特定時間中,例如t=tS,並利用現存技術相對於地磚測試進行一個靜態三角形,以產生更緊密的測試,但這會有較高花費。
此時,此地磚是在t=ts和t=te時位在邊緣外側。若我們有一個最小值發生在t [t s ,t e ],我們仍然可以有一個重疊。所以下一個測試是要以t微分邊緣等式兩次:
一個區域最小值只可在">0時發生,也就是說,大於0時。若這並非真,則我們無法擁有區域最小值,並且可作出這樣的結論,即,此地磚是在此運動邊緣的外側。若=[0,0],則此邊緣等式並不為二次多項式,因而其足以測試外側條件t=ts和t=te。
區域最小值是發生在由'=2=0所判定出的一個時間區間內。若此解保證為<t s 或 t >t e ,,那麼此最小值是發生在所論範圍之外,並且因此,此地磚並不會重疊。此解為:
其中,我們已經知道>0。若 α 0,那麼分母含有一個0,並且此除法會導致無限區間,且我們的測試什麼也無法提供,因此我們會保守地假設此地磚係與邊緣重疊。
若α>0且>0,上面的此表示式可被簡化成:
其中最後的步驟是來自於由於>0此事實的區間乘法最佳化。接下來,我們測試是否<t s 或>t e ,並且若事情就是這樣,則沒有重疊,因為最小值是發生在我們的所論時間範圍外。利用第9式和一些代數調處,最後的步驟可被簡化成:
最後我們需要測試區域最小值是否保證係發生在t<0或t>1。
示於第12圖中的運算系統130可包括一個硬驅動機134和一個可移除媒體136,可移除媒體136藉由一個匯流排104耦接至一個晶片組核心邏輯110。係可使一個鍵盤和滑鼠120,或其他習知部件,經由一個匯流排105耦接至圖形處理器112,以及使其耦接至主要或主機處理器100。圖形處理器112可亦藉由一個匯流排106而耦接至一個訊框緩衝器114。訊框緩衝器114可藉由一個匯流排107耦接至一個顯示螢幕118。在一個實施例中,一個圖形處理器112可為使用單指令多資料(single instruction multiple data,SIMD)架構的一個多緒式多核心並行處理器。
在一個軟體實作的事例中,係可將相關碼儲存在任何適當的半導體、磁性、或光學記憶體中,包括主要記憶體132或在此圖形處理器內的任何可用記憶體。因此,在一個實施例中,用來進行第11圖之序列的碼可係儲存在一個非暫時性機器或電腦可讀媒體,例如記憶體132或圖形處理器112,中,並且在一個實施例中,係可由處理器100或圖形處理器112執行。
第11圖是一個流程圖。在一些實施例中,繪示於此流程圖中的序列係可被實施在硬體、軟體或韌體中。在一個軟體實施例中,係可使用一個非暫時性電腦可讀媒體,例如一個半導體裝置、一個磁性記憶體、或一個光學記憶體來儲存指令,且其係可由一個處理器執行,以實施示於第11圖中的序列。
於本文中所描述的圖形處理技術係可在各種硬體架構中實施。例如,係可將圖形功能整合在一個晶片組中。或者是,係可使用一個分立圖形處理器。再舉另一個實施例,這些圖形功能係可由一個一般用途處理器實施,包括多核心處理器。
於本說明書通篇中對於「一個實施例」或「一實施例」的指涉係指配合此實施例所描述的此特定特徵、結構或特性係包括在涵蓋於本發明內的至少一個實作中。因此,「一個實施例」或「在一實施例中」等詞語的出現並不必然係指同一個實施例。此外,這些特定特徵、結構或特性係可以與所例示之特定實施例不同的其他適當的形式制定,並且所有的這些形式都可係涵蓋於本申請案之申請專利範圍內。
8~16、20~26、30、36、39、46~48...方塊
18、28、32~34、38、40...菱形
100...主要或主機處理器
104~107...匯流排
110...晶片組核心邏輯
112...圖形處理器
114...訊框緩衝器
118...顯示螢幕
120...鍵盤和滑鼠
130...運算系統
132...記憶體
134...硬驅動機
136...可移除媒體
第1圖是依據一個實施例的對於移動模糊柵格化的一個圖示;
第2圖是依據一個實施例的對於螢幕空間中的一個地磚之繪示;
第3a圖是對於各個平截頭體平面之測試的繪示,此測試係相對於在該平面之法線之負方向中最遠的頂點,以裁定運動框盒是否覆蓋此平截頭體;
第3b圖示出一個事例,其中,此框盒只短暫位在遠平面之內側,且其在另一個平面內側僅朝向此運動行為之對端;
第4圖示出在由在時間0與時間1間之線性內插所運算出的掃掠框盒與在每個時間緊密定界出三角形之對齊於掃掠軸的定界框盒(bounding box)之間的在定界緊密度上之差異。
第5圖依據一個實施例,示出被投影在螢幕空間中的一個定界框盒;
第6圖依據一個實施例,針對一個特定螢幕空間位置,以t之函數示出邊緣方程式;
第7a圖示出,被投影在四個地磚角向量的三個控制點導致針對各個bi係數的區間;
第7b圖示出對於貝齊爾(Bzier)曲線之細分,以作出更緊密的測試;
第8圖示出對於導致完全在內側或完全在外側的兩個位元遮罩的時間區間之保守柵格化;
第9圖依據一個實施例示出一個三角形,其移動越過一個螢幕空間;
第10圖示出貝齊爾截割的兩個範例;
第11a和11b圖是一個實施例的流程圖;
第12圖是對一個實施例的概略繪示。
8~16、20~26...方塊
18、28...菱形
Claims (27)
- 一種用於移動模糊柵格化之方法,其包含下列步驟:逐地磚地(tile by tile)遍歷由一個運動三角形所覆蓋的一個螢幕空間區域;針對各個地磚,識別出與該運動三角形重疊的數個時間區段;相對於該運動三角形,測試在該地磚內且在所識別出之該等時間區段中的數個樣本;以及相對於地磚隅角針對三角形邊緣執行一第二測試,該第二測試為一個地磚隅角對運動邊緣重疊測試,其中該螢幕空間地磚的該等隅角係相對於該運動三角形邊緣被作測試。
- 如申請專利範圍第1項之方法,其包括下列步驟:針對一個地磚平截頭體的各個平面執行一第一測試,該第一測試為一個平截頭體平面對運動定界框盒重疊測試,其中定界一個運動基元的數個平面係相對於一個螢幕地磚平截頭體被作重疊測試。
- 如申請專利範圍第1項之方法,其包括下列步驟:使用對於該等運動三角形邊界等式的一種經定界表示型態。
- 如申請專利範圍第2項之方法,其包括下列步驟:相對於地磚隅角針對三角形邊緣執行一第二測試,該第二測試為一個地磚隅角對運動邊緣重疊測試,其中該螢幕空間地磚的該等隅角係相對於該運動三角 形邊緣被作測試,以及利用該等第一和第二測試來減少需要被相對於該運動三角形作內側測試的樣本數。
- 如申請專利範圍第4項之方法,其包括下列步驟:界定出當中之樣本不需被作內側測試的一個空間性時間性(spatio-temporal)取樣空間。
- 如申請專利範圍第4項之方法,其包括下列步驟:界定出當中之樣本必須被作內側測試的一個空間性時間性取樣空間。
- 如申請專利範圍第2項之方法,其包括下列步驟:相對於一組地磚平截頭體平面測試一個運動軸對齊定界框盒;相對於一組地磚平截頭體平面測試一個運動物件導向定界框盒;以及使用一個線性運動定界框盒。
- 如申請專利範圍第3項之方法,其包括下列步驟:使用對於該等運動三角形邊緣等式的線性近似。
- 如申請專利範圍第4項之方法,其包括下列步驟:使用對於該等運動三角形邊界等式的一種經定界表示型態;以及使用對於該等運動三角形邊緣等式的線性近似。
- 一種儲存有指令的非暫時性電腦可讀媒體,該等指令使得一個處理器能夠進行下列步驟:逐地磚地遍歷由一個運動三角形所覆蓋的一個螢 幕空間區域;針對各個地磚,識別出與該運動三角形重疊的數個地磚區段;相對於該運動三角形,測試在該地磚內且在所識別出之該等時間區段中的數個樣本;以及相對於地磚隅角針對三角形邊緣執行一第二測試,該第二測試為一個地磚隅角對運動邊緣重疊測試,其中該螢幕空間地磚的該等隅角係相對於該運動三角形邊緣被作測試。
- 如申請專利範圍第10項之媒體,其進一步儲存有用於下列步驟的指令:針對一個地磚平截頭體的各個平面執行一第一測試,該第一測試為一個平截頭體平面對運動定界框盒重疊測試,其中定界一個運動基元的數個平面係相對於一個螢幕地磚平截頭體被作重疊測試。
- 如申請專利範圍第10項之媒體,其進一步儲存有用於下列步驟的指令:使用對於該等運動三角形邊界等式的一種經定界表示型態。
- 如申請專利範圍第11項之媒體,其進一步儲存有用於下列步驟的指令:相對於地磚隅角針對三角形邊緣執行一第二測試,該第二測試為一個地磚隅角對運動邊緣重疊測試,其中該螢幕空間地磚的該等隅角係相對於該運動三角 形邊緣被作測試,以及利用該等第一和第二測試來減少需要被相對於該運動三角形作內側測試的樣本數。
- 如申請專利範圍第13項之媒體,其進一步儲存有用於下列步驟的指令:界定出當中之樣本不需被作內側測試的一個空間性時間性取樣空間。
- 如申請專利範圍第13項之媒體,其進一步儲存有用於下列步驟的指令:界定出當中之樣本必須被作內側測試的一個空間性時間性取樣空間。
- 如申請專利範圍第11項之媒體,其進一步儲存有用於下列步驟的指令:相對於一組地磚平截頭體平面測試一個運動軸對齊定界框盒,相對於一組平截頭體平面測試該運動物件以創造一個定界框盒,以及使用一個線性運動定界框盒。
- 如申請專利範圍第12項之媒體,其進一步儲存有用於下列步驟的指令:使用對於該等運動三角形邊緣等式的線性近似。
- 如申請專利範圍第13項之媒體,其進一步儲存有用於下列步驟的指令:使用對於該等運動三角形邊界等式的一種經定界 表示型態,以及使用對於該等運動三角形邊緣等式的線性近似。
- 一種設備,其包含:一個處理器,用於進行下列步驟:逐地磚地遍歷由一個運動三角形所覆蓋的一個螢幕空間區域,針對各個地磚,識別出與該運動三角形重疊的數個地磚區段,相對於該運動三角形,測試在該地磚內且在所識別出之該等時間區段中的數個樣本,及相對於地磚隅角針對三角形邊緣執行一第二測試,該第二測試為一個地磚隅角對運動邊緣重疊測試,其中該螢幕空間地磚的該等隅角係相對於該運動三角形邊緣被作測試;以及耦接至該處理器的一個儲存體。
- 如申請專利範圍第19項之設備,該處理器係用於進行下列步驟:針對一個地磚平截頭體的各個平面執行一第一測試,該第一測試為一個平截頭體平面對運動定界框盒重疊測試,其中定界一個運動基元的數個平面係相對於一個螢幕地磚平截頭體被作重疊測試。
- 如申請專利範圍第19項之設備,該處理器係用於進行下列步驟:使用對於該等運動三角形邊界等式的一種經定界 表示型態。
- 如申請專利範圍第20項之設備,該處理器係用於進行下列步驟:相對於地磚隅角針對三角形邊緣執行一第二測試,該第二測試為一個地磚隅角對運動邊緣重疊測試,其中該螢幕空間地磚的該等隅角係相對於該運動三角形邊緣被作測試,以及利用該等第一和第二測試來減少需要被相對於該運動三角形作內側測試的樣本數。
- 如申請專利範圍第22項之設備,該處理器係用於進行下列步驟:界定出當中之樣本不需被作內側測試的一個空間性時間性取樣空間。
- 如申請專利範圍第22項之設備,該處理器係用於進行下列步驟:界定出當中之樣本必須被作內側測試的一個空間性時間性取樣空間。
- 如申請專利範圍第20項之設備,該處理器係用於進行下列步驟:相對於一組地磚平截頭體平面測試一個運動軸對齊定界框盒,相對於一組平截頭體平面測試該運動物件以創造一個定界框盒,以及使用該線性運動定界框盒。
- 如申請專利範圍第21項之設備,該處理器係用於進行下列步驟:使用對於該等運動三角形邊緣等式的線性近似。
- 如申請專利範圍第22項之設備,該處理器係用於進行下列步驟:使用對於該等運動三角形邊界等式的一種經定界表示型態,以及使用對於該等運動三角形邊緣等式的線性近似。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/033,741 US8854377B2 (en) | 2011-02-24 | 2011-02-24 | Hierarchical motion blur rasterization |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201235975A TW201235975A (en) | 2012-09-01 |
TWI517090B true TWI517090B (zh) | 2016-01-11 |
Family
ID=46718679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100147979A TWI517090B (zh) | 2011-02-24 | 2011-12-22 | 階層式移動模糊柵格化技術 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8854377B2 (zh) |
TW (1) | TWI517090B (zh) |
WO (1) | WO2012115711A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460546B1 (en) | 2011-03-30 | 2016-10-04 | Nvidia Corporation | Hierarchical structure for accelerating ray tracing operations in scene rendering |
US9218678B2 (en) * | 2011-04-25 | 2015-12-22 | Intel Corporation | Multi-view rasterization using an analyticl visibility function |
US8970584B1 (en) * | 2011-06-24 | 2015-03-03 | Nvidia Corporation | Bounding box-based techniques for improved sample test efficiency in image rendering |
US9142043B1 (en) * | 2011-06-24 | 2015-09-22 | Nvidia Corporation | System and method for improved sample test efficiency in image rendering |
US9147270B1 (en) * | 2011-06-24 | 2015-09-29 | Nvidia Corporation | Bounding plane-based techniques for improved sample test efficiency in image rendering |
US9269183B1 (en) | 2011-07-31 | 2016-02-23 | Nvidia Corporation | Combined clipless time and lens bounds for improved sample test efficiency in image rendering |
US9305394B2 (en) | 2012-01-27 | 2016-04-05 | Nvidia Corporation | System and process for improved sampling for parallel light transport simulation |
US9171394B2 (en) | 2012-07-19 | 2015-10-27 | Nvidia Corporation | Light transport consistent scene simplification within graphics display system |
US9159158B2 (en) | 2012-07-19 | 2015-10-13 | Nvidia Corporation | Surface classification for point-based rendering within graphics display system |
US9390550B2 (en) * | 2013-04-18 | 2016-07-12 | Intel Corporation | Culling for higher-order motion blur rasterization |
US10096147B2 (en) * | 2016-03-10 | 2018-10-09 | Qualcomm Incorporated | Visibility information modification |
US10937126B2 (en) * | 2018-05-17 | 2021-03-02 | Intel Corporation | Tile-based multiple resolution rendering of images |
US10394859B1 (en) * | 2018-10-19 | 2019-08-27 | Palantir Technologies Inc. | Systems and methods for processing and displaying time-related geospatial data |
US20220410002A1 (en) * | 2021-06-29 | 2022-12-29 | Bidstack Group PLC | Mesh processing for viewability testing |
US20230281918A1 (en) * | 2022-03-04 | 2023-09-07 | Bidstack Group PLC | Viewability testing in the presence of fine-scale occluders |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471248A (en) | 1992-11-13 | 1995-11-28 | National Semiconductor Corporation | System for tile coding of moving images |
US5852443A (en) | 1995-08-04 | 1998-12-22 | Microsoft Corporation | Method and system for memory decomposition in a graphics rendering system |
US6760024B1 (en) * | 2000-07-19 | 2004-07-06 | Pixar | Method and apparatus for rendering shadows |
EP1616305A1 (en) * | 2003-04-09 | 2006-01-18 | Koninklijke Philips Electronics N.V. | Generation of motion blur |
US7446780B1 (en) * | 2003-08-29 | 2008-11-04 | Nvidia Corporation | Temporal antialiasing in a multisampling graphics pipeline |
EP1542167A1 (en) * | 2003-12-09 | 2005-06-15 | Koninklijke Philips Electronics N.V. | Computer graphics processor and method for rendering 3D scenes on a 3D image display screen |
US7382373B2 (en) * | 2003-12-19 | 2008-06-03 | Intel Corporation | Method and apparatus for producing animation |
US8400454B2 (en) * | 2005-03-30 | 2013-03-19 | Ati Technologies, Inc. | System and method for creating motion blur |
US20090040220A1 (en) * | 2007-02-05 | 2009-02-12 | Jonathan Gibbs | Hybrid volume rendering in computer implemented animation |
US8416245B2 (en) * | 2008-01-15 | 2013-04-09 | Microsoft Corporation | Creation of motion blur in image processing |
US8068153B2 (en) | 2009-03-27 | 2011-11-29 | Omnivision Technologies, Inc. | Producing full-color image using CFA image |
JP4715944B2 (ja) | 2009-04-03 | 2011-07-06 | オムロン株式会社 | 三次元形状計測装置、三次元形状計測方法、および三次元形状計測プログラム |
-
2011
- 2011-02-24 US US13/033,741 patent/US8854377B2/en not_active Expired - Fee Related
- 2011-12-22 TW TW100147979A patent/TWI517090B/zh not_active IP Right Cessation
- 2011-12-30 WO PCT/US2011/068004 patent/WO2012115711A2/en active Application Filing
-
2014
- 2014-09-10 US US14/482,149 patent/US9142008B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2012115711A2 (en) | 2012-08-30 |
WO2012115711A3 (en) | 2013-01-31 |
US20120218264A1 (en) | 2012-08-30 |
US8854377B2 (en) | 2014-10-07 |
US20150022532A1 (en) | 2015-01-22 |
TW201235975A (en) | 2012-09-01 |
US9142008B2 (en) | 2015-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI517090B (zh) | 階層式移動模糊柵格化技術 | |
JP5120926B2 (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP5188628B2 (ja) | 3dオブジェクトの3dモデルをレンダリングするための方法及びシステム | |
US5402532A (en) | Direct display of CSG expression by use of depth buffers | |
US10032308B2 (en) | Culling objects from a 3-D graphics pipeline using hierarchical Z buffers | |
US9147270B1 (en) | Bounding plane-based techniques for improved sample test efficiency in image rendering | |
US11074724B2 (en) | GPU calculation of signed distance fields | |
CN104933749B (zh) | 图形图元的裁剪 | |
TWI550551B (zh) | 景深網格化 | |
JP2007528529A (ja) | 3dデータ集合のサーフェスを識別するための方法及びシステム(「ボクセル分割」) | |
JP2011134326A (ja) | プログラム可能カリングユニットのコンパイル | |
GB2463992A (en) | Stroked curve rendering system | |
JP5770295B2 (ja) | モーションブラー及び被写界深度のためのバックフェースカリング | |
CN101271588B (zh) | 可重建几何阴影图方法 | |
US20090213144A1 (en) | Apparatus and method to calculate raster data | |
TWI490816B (zh) | 基於線性化五維(5d)邊緣方程式之樣本揀選技術 | |
CN110570504B (zh) | 闭合符号绘制方法、装置、电子设备及存储介质 | |
Kim et al. | Closest point sparse octree for surface flow visualization | |
Martin et al. | Efficient rendering of extrudable curvilinear volumes | |
Fossås | Voxel-Based Level-of-Detail Visualization of Isogeometric Volumes | |
Haykal | An Optimized Triangle Rasterizer | |
Wang et al. | Geometry shadow maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |