欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

移位參數(shù)曲面的分層包圍的制作方法

文檔序號:6424222閱讀:212來源:國知局
專利名稱:移位參數(shù)曲面的分層包圍的制作方法
移位參數(shù)曲面的分層包圍
背景技術(shù)
本發(fā)明總體上涉及圖形處理,并且更具體地涉及渲染系統(tǒng)(諸如交互式、實時和離線/膠片渲染)中的曲面細分(tessellation).現(xiàn)代圖形處理器包含用于將曲面細分成許多小三角形的專用硬件。DirectX 11應(yīng)用程序接口(“DX11”)(API)向圖形流水線中增加了三個新階段,用以支持曲面細分外殼著色器、固定功能曲面細分單元和域著色器。外殼著色器對每個面片(patch)執(zhí)行一次,并對每個控制點執(zhí)行一次,通常用來計算曲面細分系數(shù)并用來改變控制點基礎(chǔ)。固定功能曲面細分單元將曲面細分系數(shù)作為輸入,并生成在輸入圖元的域中的頂點位置的大的集合以及在頂點之間的連接信息。該連接信息形成許多小三角形。對從曲面細分單元生成的每一個頂點位置,執(zhí)行一次域著色器。域著色器的一個典型用途就是使用例如一組控制點、重心坐標和詳細紋理作為輸入來計算參數(shù)曲面的位置和法線。該輸出是由一組屬性定義的移位頂點。一個屬性是位置,但該著色器也能計算移位頂點的法線/切線/雙切線/紋理坐標 /顏色/透明度或其他屬性。


圖1是示出了頂角控制點和向量b和t的圖形;通過形成面片的頂角之間的向量, 從而可以導(dǎo)出OBB軸;圖2在上行中示出了在用于包圍具有兩個分離的移位頂峰的三次多項式的25個步驟之后得到的邊界的示例,左圖使用AABB,右圖使用0ΒΒ,其軸由貝塞爾曲線的控制點確定,而在下行中將Perlin噪聲增加到移位著色器;圖3是經(jīng)過相同次數(shù)細分的AABB包圍對比于OBB包圍的三維示例;圖4示出了對于法線面片的法線包圍技術(shù),最左側(cè)的圖示出了在歸一化前的法線面片,中間的圖示出了作為被歸一化以使其映射到單位球上的每個控制點,并且最后,最右側(cè)的圖示出了被椎體包圍的投影,該椎體是針對面片的歸一化法線的保守邊界;圖5示出了給定的由T和B表示的兩個參數(shù)導(dǎo)數(shù)的包圍椎體,包圍T中的任意向量和B中的任意向量的叉積的椎體可以被導(dǎo)出并且在這里被表示為N ;圖6示出了其中執(zhí)行16步細分的使用屏幕空間包圍盒尺寸作為分類標準的兩個不同視圖的示例,以及在細分密度上結(jié)果差異;圖7是根據(jù)本發(fā)明的一個實施例的包圍移位貝塞爾曲面面片和包圍算法的流程圖;圖8是根據(jù)一個實施例的通過找到移位貝塞爾面片的OBB來計算移位面片的邊界的更詳細的流程的流程圖;圖9是通過使用控制點定義基礎(chǔ)面片的OBB的一個實施例的流程圖;圖10是查找歸一化法線的一個實施例的流程圖;圖11是查找歸一化法線的另一個實施例的流程圖;圖12是本發(fā)明的一個實施例的硬件描述。
具體實施例方式減少域著色器計算的次數(shù)可以減少圖形流水線的該階段所需的計算資源。這可以通過剔除對最終圖像無貢獻的面片來實現(xiàn)。為了使得該剔除更高效,可以使用一種用于計算移位曲面的分層邊界的算法。此外,在基于碎塊(tile-based)的渲染架構(gòu)中,需要輸入圖元的邊界以便高效地將輸入圖元分類到碎塊中?!鞍鼑w(bounding volume)”是一測定體積的物體,例如包圍另一物體的盒或球。由于域著色器是可編程的,因此很難給出輸出位置的保守并緊密的邊界,這可能導(dǎo)致需要將已生成的小三角形逐個分類到碎塊中。這增加了碎塊隊列的存儲器需求,增加了帶寬使用,并降低了面片圖元層上的遮擋剔除的效率。取而代之的是,如圖7所示,可以僅僅基于域著色器在運行中計算這些邊界(框 12),而無需用戶指定的參數(shù)。因此,當(dāng)圖元被分割成較小的子面片時,該邊界可以被適應(yīng)性地改善以創(chuàng)建分層。在一個實施例中,一種算法通過使用高效法線包圍、定向包圍盒和移位紋理的最小-最大mipmap分層,使得能夠保守并緊密地包圍動態(tài)移位參數(shù)曲面(諸如貝塞爾面片)。面片可以被剔除(框16)。如果未被剔除,則可以對圖元進行曲面細分和域著色 (框⑶。在一些實施例中,由于面片不是必須被發(fā)送給曲面細分單元,針對該面片的域著色器和曲面細分單元任務(wù)可以減少。在一些實施例中,如果輸入面片被剔除,則無需進行曲面細分和域著色。類似地,在一些實施例中,如果子面片被剔除,則無需進一步處理該子面片。否則,該子面片被曲面細分并被域著色。雙三次貝賽爾面片(bi-cubic Bezier patch)的集合是用于平滑曲面的常用渲染圖元??梢允褂霉乃惴▽atmull-Clark細分曲面轉(zhuǎn)換為這種參數(shù)面片的集合,同時如實地近似遞歸細分處理的有限曲面。普遍做法是沿面片的法線向量的方向增加來自高分辨率紋理的移位,以便增加最終曲面的細節(jié)。移位貝賽爾面片可以用于渲染API中的域著色器中。貝賽爾面片由其控制點簡潔地表示,并且該參數(shù)曲面表示能夠被有效地并行計算(與遞歸細分曲面不同)。貝賽爾面片p(u,v)是參數(shù)曲面,即通過兩個參數(shù)坐標u和ν來定義的曲面。術(shù)語 “基礎(chǔ)面片”表示尚未被移位的貝賽爾面片,以與最終被移位的曲面相區(qū)別。用于在參數(shù)坐標(U,v)處計算移位貝賽爾面片的域著色器計算基礎(chǔ)面片位置p(u,v)、基礎(chǔ)面片的歸一化法線A(W,V)和(通常)從紋理t(u,ν)得到的移位值。如果該移位沿基礎(chǔ)面片的法線方向進行,則域著色器(乘以模型-視圖-投影矩陣之前)為d. (u,v) = p(u,v) + n(u,v)t(u,v)(1)在同種坐標中,模型視圖投影矩陣M乘以d(u,v),獲得剪裁空間位置(clip space position)q q(u,v) = Md(u,v) = M{p{u,v) + h{u,v)t{u,v))(2)歸一化設(shè)備坐標由Sx = qx/qw和Sy = qy/qw給出??梢哉业皆趨?shù)域上的保守邊界9(11,力,其中£1<=11<=13且(3<=¥<=(1。接下來,我們描述如何包圍ρ (U,V)。貝賽爾面片具有凸包(convex hull)性質(zhì), 且它們易于被其控制點所包圍。為貝賽爾面片查找按坐標軸排列的包圍盒(axis-alignebounding box, AABB)占用每個控制點的3個最小操作和3個最大操作。通過反復(fù)應(yīng)用貝塞爾細分,經(jīng)細分的面片的控制點殼體(cage)向底層的基礎(chǔ)面片快速收斂。此外,如果初始面片在每一步被遞歸地分割成兩部分PA和pB,則需要生成pA 的de Casteljau步驟將為pB生成作為副產(chǎn)品的控制點。這考慮到了能夠高效地實現(xiàn)。我們可以從基礎(chǔ)面片定義的軸的控制點導(dǎo)出定向包圍盒(oriented bounding box,0BB)的軸。該盒比AABB更緊密地包圍基礎(chǔ)面片。對于在相同迭代中兩個經(jīng)細分的面片中的每一個,基礎(chǔ)面片和法線面片、以及移位紋理和查找被改善。參照圖8,其示出了在圖7的框12表示的用于計算移位曲面的邊界的步驟,通過使用貝塞爾細分,基礎(chǔ)面片沿著一個軸被細分。框14表示的基礎(chǔ)面片包圍涉及從控制點尋找OBB軸,并將所有控制點投影到這些軸上。接著,沿著每個軸的最小值和最大值被找出以導(dǎo)出包含所有控制點的0ΒΒ,并且貝塞爾面片的凸包性質(zhì)意味著曲面被包含于該OBB中。接下來,如框15所示,在最小/最大紋理分層中查找最小移位和最大移位。此后, 在菱形19,執(zhí)行檢查以判斷移位是否為零。如果為零,則將模型視圖投影應(yīng)用到面片的包圍盒的8個頂角(框20),并返回該邊界(框23)。如果該移位不是零,則在框21,通過使用下面描述的所謂的TPATCH和NPATCH的技術(shù)之一進行法線包圍,然后,進行模型視圖投影轉(zhuǎn)換 (框20)并返回邊界(框23)。最后,在框23,應(yīng)用模型視圖投影轉(zhuǎn)換。對于貝塞爾面片,頂角控制點之間的向量(圖1)相加得到兩個軸(圖9的框24)。 假定面片具有(m+1) X (n+1)個控制點,我們用c^c^Ab* cm,n來表示四個頂角控制點, 并形成兩個向量t = cmj0-c0j0+cm,n-c0jn(3)b = c0jn-c0j0+cm,n-cmj0(4)t和b分別可以看作U參數(shù)方向和ν參數(shù)方向的近似平均梯度。上述二者不必正交。上述二者的叉積(圖9的框26)得到第三個軸n = t叉乘b。為了形成正交坐標系, 我們設(shè)定χ = t,y = η叉乘t,ζ = n,并歸一化每個向量(圖9的框28)。最終坐標系統(tǒng)是:(:i,j),f)。在大多數(shù)情形下,與使用AABB相比,這顯著減小了包圍盒的大小??梢詫?dǎo)出更精細的基于控制點殼體的OBB適配方案,但在實踐中,上述簡單方法為緊密包圍曲面的OBB 產(chǎn)生軸。在圖2的曲線中和圖3的貝塞爾面片中,突出示出了用AABB包圍與用OBB包圍的質(zhì)量的不同。對于簡單情況,我們僅使用AABB。如我們將在后面示出的,OBB軸在法線包圍算法中也非常有用。在域上包圍面片法線樹…V)比包圍基礎(chǔ)位置ρ (u,ν)困難很多。計算基礎(chǔ)面片p(u,v)的兩個參數(shù)導(dǎo)數(shù)的叉積作為法線方向。按照張量積貝塞爾曲面的標準表示,貝塞爾面片P(u,v):R2 ? R3由以下公式定義
權(quán)利要求
1.一種用于包圍移位參數(shù)曲面的方法,包括包圍使用從參數(shù)曲面導(dǎo)出的坐標系的所述參數(shù)曲面;和在同一坐標系中包圍移位向量。
2.如權(quán)利要求1所述的方法,包括計算所述移位參數(shù)曲面的分層邊界。
3.如權(quán)利要求2所述的方法,包括當(dāng)按照應(yīng)用定義的優(yōu)先級度量將所述參數(shù)曲面分割成較小的子面片時,適應(yīng)性地改善邊界。
4.如權(quán)利要求3所述的方法,其中,包圍包括改善位置、法線和紋理邊界。
5.如權(quán)利要求4所述的方法,包括反復(fù)應(yīng)用貝賽爾細分,直到滿足應(yīng)用定義的閾值。
6.如權(quán)利要求1所述的方法,包括對頂角控制點之間的向量取平均以得到兩個軸;得到所述兩個軸的叉積;并且歸一化每個向量以形成面向?qū)ο蟮陌鼑凶鴺讼怠?br> 7.如權(quán)利要求6所述的方法,包括從參數(shù)導(dǎo)數(shù)導(dǎo)出法線向量貝塞爾面片;將控制點投影到單位球上;并且在面向?qū)ο蟮陌鼑凶鴺讼抵邪鼑鷨挝磺蛏系牧Ⅲw角,以給出在基礎(chǔ)面片上的所述基礎(chǔ)面片的歸一化法線的邊界。
8.如權(quán)利要求6所述的方法,包括使用用于導(dǎo)出基礎(chǔ)面片的歸一化法線的邊界的椎體。
9.如權(quán)利要求6所述的方法,包括從一個參數(shù)方向上的導(dǎo)數(shù)形成第一錐體;從不同的參數(shù)方向上的導(dǎo)數(shù)形成第二錐體;并且通過在所述坐標系中計算所述第一椎體和所述第二錐體的叉積而形成第三錐體。
10.如權(quán)利要求1所述的方法,包括剔除子面片、曲面細分和域著色。
11.如權(quán)利要求1所述的方法,包括通過使用所獲得的邊界以將較高階圖元分類到屏幕空間的碎塊中。
12.如權(quán)利要求1所述的方法,包括建立包圍體的層次以用于光線跟蹤。
13.如權(quán)利要求1所述的方法,包括將所述曲面轉(zhuǎn)換成在計算機顯示器上顯示的可視形式。
14.一種用于處理圖形的裝置,包括處理器;和存儲設(shè)備,其耦合到所述處理器,所述存儲設(shè)備用于包圍使用從參數(shù)曲面導(dǎo)出的坐標系的所述參數(shù)曲面,并且用于在同一坐標系中包圍移位向量。
15.如權(quán)利要求14所述的裝置,包括顯示器,其用于顯示由包圍所述移位參數(shù)曲面得到的圖像。
16.如權(quán)利要求14所述的裝置,所述存儲設(shè)備存儲用于計算所述移位參數(shù)曲面的分層邊界的指令。
17.如權(quán)利要求16所述的裝置,所述存儲設(shè)備存儲用于當(dāng)按照應(yīng)用定義的優(yōu)先級度量將所述參數(shù)曲面分割成較小的子面片時,適應(yīng)性地改善邊界的指令。
18.如權(quán)利要求16所述的裝置,所述存儲設(shè)備存儲用于改善正的、法線和紋理邊界的指令。
19.如權(quán)利要求18所述的裝置,所述存儲設(shè)備存儲用于反復(fù)應(yīng)用貝塞爾細分,直到滿足應(yīng)用定義的閾值的指令。
20.如權(quán)利要求14所述的裝置,所述存儲設(shè)備存儲用于對頂角控制點之間的向量取平均以得到兩個軸,得到所述兩個軸的叉積,并且歸一化每個向量以形成面向?qū)ο蟮陌鼑凶鴺讼档闹噶睢?br> 全文摘要
對于交互式和實時渲染中的曲面細分,移位參數(shù)曲面的分層包圍可以是很常見的使用情況。可以使用高效的法線包圍技術(shù)、最小-最大mipmap分層和定向包圍盒技術(shù)。在一些實施例中,這為移位曲面的包圍體提供了非??斓氖諗?,而無需曲面細分和對曲面進行移位??梢詫Σ煌愋偷奶蕹?、光線跟蹤使用該包圍技術(shù),并且用于在碎塊疊鋪架構(gòu)中對較高階圖元進行分類。
文檔編號G06T17/20GK102214369SQ20111012635
公開日2011年10月12日 申請日期2011年4月7日 優(yōu)先權(quán)日2010年4月7日
發(fā)明者J·哈塞爾格倫, J·蒙克貝里, R·托特, T·阿克寧-穆勒 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
措美县| 文安县| 甘孜县| 永登县| 铁岭县| 漾濞| 漳浦县| 海丰县| 扶余县| 临武县| 山丹县| 山阳县| 奉新县| 通化县| 丰县| 阿巴嘎旗| 三明市| 镇江市| 龙门县| 黑河市| 岗巴县| 如东县| 武功县| 伊金霍洛旗| 乌拉特前旗| 沙洋县| 叙永县| 竹北市| 焉耆| 泰宁县| 新野县| 辽阳县| 腾冲县| 沭阳县| 忻州市| 赣榆县| 宜春市| 卢氏县| 调兵山市| 二手房| 木里|