国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用紋理坐標導(dǎo)數(shù)的加速的紋理查找的制作方法

      文檔序號:6496437閱讀:284來源:國知局
      使用紋理坐標導(dǎo)數(shù)的加速的紋理查找的制作方法
      【專利摘要】公開用于準備預(yù)提取3D圖形著色器程序中的存儲器的方法、系統(tǒng)和裝置?;诩y理圖中先前讀取的紋素的存儲器地址,通過使用存儲器地址相對于像素距離的一階導(dǎo)數(shù)來估算待讀取紋素的存儲器地址。然后預(yù)提取估算的存儲器地址以便在渲染對應(yīng)于該紋素的該像素時使用。通過對應(yīng)的像素是否位于3D模型上的相同平坦的小平面上,可以確定是否要執(zhí)行紋素存儲器地址的估算??梢允褂眯∑矫嫔系亩鄠€方向來進行存儲器地址估算以及高階導(dǎo)數(shù)。
      【專利說明】使用紋理坐標導(dǎo)數(shù)的加速的紋理查找
      [0001]相關(guān)申請的交叉引用
      [0002]本申請是2012年7月20日提交的美國申請N0.13/554,976 (代理人案號90619-819671 (009610US))的延續(xù)并要求其權(quán)益,美國申請N0.13/554, 976要求2011年9月12日提交的美國臨時申請N0.61/527,061 (代理人案號90619-802863 (009600US))的權(quán)益。上述申請基于所有目的通過引用全部并入本文。
      【技術(shù)領(lǐng)域】
      [0003]本發(fā)明的實施方案大體上涉及計算機圖形處理系統(tǒng),以及具體來說,涉及預(yù)測用于渲染三維對象的紋理圖的存儲器提取的圖形處理單元。
      【背景技術(shù)】
      [0004]現(xiàn)代視頻游戲和計算機輔助設(shè)計(CAD)應(yīng)用中的三維(3D或3_D)模型使用紋理圖來接近真實外觀。紋理圖(有時稱為紋理)典型地是顏色、透明度、材料屬性、表面取向或其他特征的表,其可以采用數(shù)字方式包繞或以其它方式映射到3D對象。盡管名稱如此,它們不僅能夠定義對象的紋理外觀,而且還能夠定義其顏色、反射屬性、材料屬性和其他表面細節(jié)。在視頻游戲中,用于3D模型的紋理往往包括漫反射顏色紋理、鏡面(閃耀)顏色紋理、法線圖、透明度圖和材料指數(shù)等。
      [0005]在計算機圖形渲染中,圖形處理單元(GPU)中的一些最高時延操作與存儲器訪問相關(guān)。存儲器讀取操作可能比如加法、減法、乘法和除法的代數(shù)運算操作多花費數(shù)個數(shù)量級的更長時間來執(zhí)行。例如,從存儲器讀取值要花費10-100倍于將兩個值相加在一起所花費的時鐘周期并非不常見。
      [0006]在現(xiàn)有技術(shù)中,盡管名稱如此,著色器(shader)是常用的渲染程序且不限于遮光效果,其通過一行一次啟動若干渲染線程來補償存儲器訪問時延。將每個線程指定到要渲染的像素。線程使用指定的像素來查找該像素對應(yīng)于什么對象(或背景)并訪問適合的紋理圖以用于渲染。具體來說,為該像素讀取紋理圖內(nèi)適合的紋素的存儲器位置。當(dāng)隨像素完成線程時,為另一個像素調(diào)用另一個線程。這樣持續(xù)進行直到圖像的所有像素均被渲染為止。一次調(diào)用的線程的數(shù)量受限于用于跟蹤這些線程和關(guān)聯(lián)變量的寄存器或堆棧存儲器的數(shù)量。
      [0007]雖然過去幾十年中圖形處理器和渲染技術(shù)突飛猛進地提高,尤其在量產(chǎn)的消費級視頻游戲硬件中,但是現(xiàn)有技術(shù)中始終存在對更快且更高效的3D渲染的需求。

      【發(fā)明內(nèi)容】

      [0008]公開用于為著色器程序預(yù)提取與紋理圖相關(guān)的存儲器的方法、系統(tǒng)和裝置。一般,使用先前訪問的紋素的存儲器位置來估算將來訪問的存儲器位置。例如,關(guān)于存儲器地址相對于3D模型的相同三角小平面中的像素位置計算一階導(dǎo)數(shù)(類似于有限差和差商)。使用導(dǎo)數(shù)估算將可能為另一個像素訪問的另一個紋素的存儲器位置。然后讀取估算的存儲器位置,以便將其內(nèi)容置于本地變量或本地高速緩存中。如果著色器程序隨后渲染與所預(yù)提取的紋素對應(yīng)的像素,則渲染能夠進行得更快,因為紋素的存儲器已經(jīng)被讀取。
      [0009]如果紋理圖的存儲器地址是連續(xù)的且像素是三維模型上同一平面的小平面的部分,則能夠使用一階導(dǎo)數(shù)精確地估算將來的存儲器地址。如果確定用于創(chuàng)建導(dǎo)數(shù)的像素和將來的像素位于相同的小平面上,則可以計算該導(dǎo)數(shù)并讀取存儲器。如果它們位于彼此相對偏斜的不同小平面上,則可能要避免導(dǎo)數(shù)的計算,因為給定小平面之間的傾斜且不連續(xù),該估算可能不精確。再者,因為用于不同小平面的存儲器可能不相鄰,所以估算可能不精確。
      [0010]本公開的一些實施方案涉及一種準備預(yù)提取用于圖形處理的紋素的方法。該方法包括接收紋理圖的紋素的存儲器地址,這些紋素對應(yīng)于圖像中的像素,確定像素全部對應(yīng)于三維模型的共同小平面,使用操作上與存儲器耦合的至少一個處理器通過將存儲器地址中的差除以圖像中像素之間的距離來計算導(dǎo)數(shù),以及使用計算的導(dǎo)數(shù)來預(yù)提取另一個像素位置的信息。計算用于預(yù)提取的導(dǎo)數(shù)是基于像素對應(yīng)于相同小平面的確定。
      [0011]一些實施方案涉及一種用于準備預(yù)提取用于圖形處理的紋素的方法。該方法包括接收要取樣以應(yīng)用于三維模型的紋理圖的第一紋素的第一存儲器地址,該第一紋素對應(yīng)于圖像中的第一像素,接收紋理圖的第二紋素的第二存儲器地址,所述第二紋素對應(yīng)于圖像中的第二像素,使用操作上與存儲器耦合的至少一個處理器通過將第一存儲器地址與第二存儲器地址之間的差除以圖像的第一像素和第二像素的位置之間的距離來計算導(dǎo)數(shù),以及基于計算的導(dǎo)數(shù)估算紋理圖的第三紋素的第三存儲器地址。
      [0012]其他實施方案涉及采用或存儲上文描述的方法的指令的機器可讀有形存儲介質(zhì)和計算機系統(tǒng)。
      [0013]參考說明書的其余部分以及附圖可以實現(xiàn)進一步理解本文公開和建議的實施方案的性質(zhì)和優(yōu)點。
      【專利附圖】

      【附圖說明】
      [0014]圖1圖示根據(jù)實施方案的進行紋理化的3D模型。
      [0015]圖2圖示用于對圖1的3D模型紋理化的紋理圖。
      [0016]圖3圖示根據(jù)實施方案的紋理圖的紋素級細節(jié)部分。
      [0017]圖4圖示根據(jù)實施方案的進行紋理化的3D模型上的三角小平面。
      [0018]圖5示出根據(jù)實施方案的過程的流程圖。
      [0019]圖6示出根據(jù)實施方案的過程的流程圖。
      [0020]圖7圖示適于實施實施方案的計算機系統(tǒng)。
      【具體實施方式】
      [0021]一般來說,公開用于將紋理圖應(yīng)用于場景中二維、三維或其他維數(shù)的對象時估算要讀取的存儲器地址的方法、系統(tǒng)和裝置。對有關(guān)紋理圖中紋素相對于像素位置的存儲器地址取導(dǎo)數(shù),并使用導(dǎo)數(shù)估算將來要調(diào)用的存儲器地址。也可以使用其他插值技術(shù)。將估算的存儲器地址的內(nèi)容讀入到本地高速緩存中,以便將渲染對應(yīng)像素時的時延減到最小。
      [0022]可以使用像素是否對應(yīng)于3D模型的相同部分(例如小平面)的確定結(jié)果來決定估算是否值得繼續(xù)。例如,如果像素位于3D模型的不同小平面(例如,多個平面三角)上,則估算可能非常偏離真實值且不值得計算。
      [0023]可以對不同面上的小平面計算高階導(dǎo)數(shù)。這可在有小平面的3D模型嘗試逼近彎曲表面(如頭部)時尤其有用。即,當(dāng)3D模型的許多小平面是對曲線的逼近時,則引入曲線的高階多項式擬合可能是更好的擬合。在此情況中,像素橫向上位于下一個面上的確定能夠啟動高階導(dǎo)數(shù)計算,并估算適合的存儲器位置。
      [0024]可以在垂直(B卩,正交)方向上取導(dǎo)數(shù)。例如,可以在四邊形小平面上對X方向計算導(dǎo)數(shù),并然后對y方向計算另一個導(dǎo)數(shù)??梢詫⑦@些方向與小平面方向、屏幕空間、紋理空間或其他便利的方向?qū)R以便進行計算。
      [0025]“導(dǎo)數(shù)”包括有限差的差商以及其他導(dǎo)數(shù)。例如,存儲器位置中的差除以像素位置中的差可以是導(dǎo)數(shù)。以數(shù)學(xué)方式表達,示例導(dǎo)數(shù)可以轉(zhuǎn)換為:
      [0026]等式I deriv—xsOiiemfmem。)/ (sqrt (pixelxl;y02 - pixelx(l,y02))
      [0027]其中deriv_x是導(dǎo)數(shù),mem0和Iiiem1是紋素的存儲器位置,以及pixelx(l,y。和piXelxl,yQ是像素的屏幕位置。函數(shù)sqrtO返回正平方根。mem。的紋素映射或以其他方式對應(yīng)于pixelx(l,y(l,以及Iiiem1的紋素映射或以其他方式對應(yīng)于pixelxl,y(l。
      [0028]可以使用導(dǎo)數(shù)來估算將來要使用的存儲器位置,并然后預(yù)提取該存儲器位置。例如,可以通過如下等式估算第三存儲器位置:
      [0029]等式 2:mem2=mem(l+deriv_x*sq;rt (pixelx2,yCI2-pixelxCI,y02)
      [0030]其中mem2是估算的第三存儲器位置,以及pixelx2,y(l是可能與mem2的紋素對應(yīng)的像素的屏幕位置。
      [0031]在一些現(xiàn)有圖形引擎中,在硬件中支持用于計算導(dǎo)數(shù)的函數(shù)稱為ddx()。ddx()函數(shù)典型地對存儲器地址內(nèi)的值而非對存儲器地址本身進行運算。發(fā)明人認識此先存的函數(shù)在一些實施方案中能夠用以快速地計算存儲器地址的導(dǎo)數(shù)。
      [0032]其他算法可以估算非線性表面的存儲器位置。例如,硬件可以將貝茲曲線或b樣條曲線插值。在此情況中,它不是線性關(guān)系;但是它仍是熟知對其取導(dǎo)數(shù)的插值/細分。因此,能夠在存儲器訪問中查找模式。在那些情況中,可以使用表面導(dǎo)數(shù)(通過曲線參數(shù)以解析方式推導(dǎo)的)與存儲器地址(在對表面插值時觀察到的)組合以預(yù)測將來存儲器訪問。
      [0033]著色器經(jīng)常對許多像素執(zhí)行運算。隨著光柵化器遍歷3D模型的三角小平面并生成像素,它可以評估沿著三角形行進的方向。光柵化器可以確定用于參考紋素的紋素坐標如何沿著三角形變化。此信息可以用于隨其他像素被光柵化而推測性地預(yù)提取它們的紋素。這可以在著色器本身中以軟件形式實現(xiàn),其中著色器基于它預(yù)期將來要使用的紋素的導(dǎo)數(shù)發(fā)出即發(fā)即忘(fire-and-forget)紋素查找。它也可以內(nèi)置到硬件中以在低層面上幫助預(yù)提取。
      [0034]在相異的點云中,有一系列的3D點。每個點是x、y和z位置。它不是小平面的部分,所以沿著表面沒有行進。但是,一種算法能夠檢查2個獨立點的參數(shù),并使用它們來預(yù)測第三個點的行為。
      [0035]如上文所示,可以從單個小平面為像素3、4、5和更多加速加載存儲器。但是,也可以加速點I和2??梢圆捎谩包c云”方法,該方法選擇數(shù)據(jù)集中的任何兩個點以猜測前兩個點將在哪里。例如,可以考慮在它之前已經(jīng)被渲染的小平面??梢詮脑撔∑矫嬷羞x擇第一和最后一個點,以及它使用的第一和最后一個存儲器地址。
      [0036]實施方案的技術(shù)優(yōu)點包括更快速的光柵化。通過基于當(dāng)前存儲器訪問中觀察到的模式預(yù)測將來存儲器訪問,GPU能夠搶先地提取將來的存儲器訪問,從而大大地縮短實際需要訪問時的時延。雖然此解決方案可能導(dǎo)致對更大高速緩存的需求,但是它能夠減小GPU的寄存器堆的大小,因為沒有需要的那么多線程正在運行中。一般來說,一些實施方案可以利用著色器計算相對于存儲器訪問的成本某種程度是“免費的”這一事實。要認識到,計算可能因預(yù)先計算預(yù)測性存儲器訪問并然后廢棄結(jié)果而浪費,但是要認識到當(dāng)大量計算產(chǎn)生正確的估算時,通過更短的存儲器時延的好處可以彌補這種浪費。
      [0037]圖1圖示根據(jù)實施方案的進行紋理化的3D模型。三維模型101能通過多個頂點、多個個體體素或其他方式來定義,正如本領(lǐng)域中公知的。該附圖示出模型上的四邊形元件,但是可設(shè)想直線、三角形、六邊形和其他元件,以及子圖形(sprite)和點子圖形。“子圖形”包括其中僅指定兩個相對角的屏幕對齊的四邊形,或如本領(lǐng)域中公知的其它方式?!包c子圖形”包括由中心和寬度以及高度指定的四邊形或,如本領(lǐng)域中公知的其它方式。在示范實施方案中,模型101是從頂部到底部進行紋理化。紋理化的部分103在頂部,以及未紋理化的部分102位于底部。
      [0038]附圖中相對水平對齊的像素105和106正在著色器程序中進行處理。處理期間,通過查找確定紋理圖中映射到像素105和106的紋素的存儲器位置。例如,確定虛擬攝像機的像素105具有3D模型101的可視片段在小平面104上的無遮擋視野。因此,必須使用查找的紋理圖將3D模型的片段照亮、著色以及以其它方式紋理化以便查看。紋理圖可以用于實現(xiàn)顏色、法線圖、材料和其他特征。
      [0039]圖2圖示用于對圖1的3D模型紋理化的紋理圖。紋理圖210包括紋素205、206和207等。
      [0040]紋素205映射到圖1的像素105。通常,多個紋素映射到一個像素,以及由此將其顏色等混合在一起。為了此論述的目的,本實施方案中,單一紋素映射到單一像素。另外,要理解許多紋素可以映射到一個像素,以及許多像素可以由一個紋素來服務(wù)。
      [0041]因為紋素205映射到像素105,所以紋素205的存儲器地址可以說是對應(yīng)于像素105。相似地,紋素206的存儲器地址映射到像素106。
      [0042]確定像素105和106對應(yīng)于3D模型上的相同小平面的多個部分。S卩,像素105和106對應(yīng)于共同的小平面104。存儲器的估算可以是精確的。基于此共性的發(fā)現(xiàn),計算導(dǎo)數(shù),以便能夠進行估算。
      [0043]可以使用有限差來計算導(dǎo)數(shù)。例如,如果紋素205的(32位)存儲器地址是8C81,以及像素206的存儲器地址是8C85,則存儲器地址之間的差是8C85-8C81=0004。如果像素105的位置是(1152,541),且像素106的位置是(1175,542),則兩個像素之間的距離可以計算為 sqrt ((1175-1152)2+ (542-541)2) =23.0217 個像素。導(dǎo)數(shù)為 0004/23.0217.=0.1737。
      [0044]也可以使用其他距離測量,如按步長的距離。例如,上文的像素位置的距離可以簡單地計算為(1175-1152) + (542+541) =23+1=24 個像素。
      [0045]然后使用該導(dǎo)數(shù)來估算要讀取的將來存儲器位置。例如,著色器程序可以配置成預(yù)先讀取兩個像素。即,著色器程序配置成嘗試估算紋理圖中要為像素107 (圖1)讀取的存儲器位置,并然后預(yù)提取該存儲器。其他預(yù)先讀取配置也是可能的。例如,著色器程序可以配置成預(yù)先讀取10、100或更多個像素。要預(yù)先讀取的像素的數(shù)量可以視小平面的跨度而定。例如,著色器程序可以配置成預(yù)先讀取小平面上50%范圍。
      [0046]在示范實施方案中,確定所有像素是位于3D模型的相同且平的小平面上。S卩,用于計算導(dǎo)數(shù)的像素105和106與要估算的像素107位于3D模型101的共同小平面104上?;诖舜_定,邏輯進行到估算階段。即,著色器嘗試估算將為像素107讀取紋理圖的什么存儲器位置。
      [0047]使用先前計算的導(dǎo)數(shù)估算要為像素107讀取的存儲器地址。在直線斜截式y(tǒng)=mx+b等式中使用根據(jù)導(dǎo)數(shù)的紋素之一的基地址和導(dǎo)數(shù)本身來對存儲器地址插值。接續(xù)上文的數(shù)值示例,如果像素107的位置是(1190,544),則從像素105到像素107的距離可以計算為sqrt ((1190-1152)2+ (544-541)2) =38.1182 個像素。然后,將存儲器地址估算為 8C81+0.1737*38.1182=8C81+6.6=8C88。
      [0048]因此,在讀取了存儲器地址8C81和8C85之后,著色器估算將可能讀取的下一個存儲器是8C88。無需經(jīng)歷確切地確定下一個像素在哪里與模型相關(guān)的常規(guī)通道,確定了該存儲器地址。可以在正常通道與估算同時進行時啟動存儲器讀取操作。
      [0049]在該實施方案中,使用估算來預(yù)提取存儲器。著色器程序請求將存儲器地址8C88加載到本地寄存器。著色器可以跟蹤到存儲器已被加載,或者它可能僅加載存儲器地址并讓硬件從存儲器跟蹤高速緩存的值。
      [0050]可以計算其他方向的像素以便預(yù)提取其存儲器位置。例如,像素108位于從像素105比從像素106相對垂直的方向。紋素208被映射到像素108。在此垂直方向上計算導(dǎo)數(shù)。例如,可以相對于像素105和108的位置在紋素205與208的存儲器位置之間計算導(dǎo)數(shù)??梢允褂迷搶?dǎo)數(shù)來估算映射到像素109的紋素209的存儲器地址。
      [0051]當(dāng)確定所有像素位于相同小平面上時,在一些實施方案中,可以使得不同方向上執(zhí)行的估算更快速。例如,像素205-209全部位于小平面104上。如果著色器程序確定第一像素在小平面的左上方或另一末端,則可能無需顯性地確定其他像素是否位于相同的小平面上。如果要前跳的像素數(shù)量少且小平面大,則可以認為所有像素位于該小平面上。這可以使曲線少的相對平坦的表面上的渲染加速。
      [0052]圖3圖示根據(jù)實施方案的紋理圖的紋素級細節(jié)部分。為了簡潔,紋素級細節(jié)301中未示出小平面。紋素306與紋素305橫向相距4個紋素和向上I個紋素。兩個紋素已順序地被讀取,并且硬件必須估算要讀取的下一個紋素。在此小尺寸中,應(yīng)用逼近計算導(dǎo)數(shù)/斜率并對直線插值的數(shù)學(xué)嚴格性的直線視覺技術(shù),顯然,與紋素307關(guān)聯(lián)的存儲器地址(與紋素306橫向相距4個紋素和向上I個紋素)可能是下次將要讀取的存儲器地址。
      [0053]即使與紋素307關(guān)聯(lián)的存儲器不精確地對應(yīng)于要渲染的下一個紋素,無論如何,存儲器仍將可能被訪問,因為常常使用紋素的混合來進行渲染。即,即使與剛好307上方的紋素關(guān)聯(lián)的存儲器地址是直接對應(yīng)于要渲染的下一個紋素的存儲器地址,紋素307仍將可能與該紋素混合以便渲染最終顏色。因為根據(jù)紋素307的存儲器已被讀入到高速緩存中,所以混合算法的該部分可能比它以其他方式進行的要快。
      [0054]圖4圖示根據(jù)實施方案的紋理化的3D模型上的三角小平面。像素405、406和407對齊,且位于相同小平面,小平面404上。因此,如果從像素405和406插值,則計算映射到像素407的紋素的存儲器地址成功的可能性相對較高。但是,與不同的相異小平面關(guān)聯(lián)的像素可能造成不同的問題。
      [0055]像素415、416和418也位于小平面404上。但是,像素417位于小平面434,一個與小平面414不同的小平面上。因此,在本例中,在相同小平面上進行像素的斜截式插值可能是無效的。在一些情況中,在不同小平面上使用像素417和415的新導(dǎo)數(shù)對于斜截式插值可能更好。例如,可以取像素415與417之間的導(dǎo)數(shù)來估算與像素420對應(yīng)的紋素的存儲器地址。
      [0056]在垂直方向上,可以取像素415與419之間的導(dǎo)數(shù)來估算與像素421對應(yīng)的紋素的存儲器地址。像素419和421位于小平面424上。
      [0057]可以對彎曲表面或?qū)Σ煌∑矫嬷g的插值計算高級導(dǎo)數(shù)??梢允褂糜邢薏?差商。高階導(dǎo)數(shù)可以僅取某個點處的導(dǎo)數(shù)之間的差并除以該點處像素之間的距離。例如,二階導(dǎo)數(shù)可以計算為:
      [0058]等式3:deriv2_x= (deriv_xI, -deriv_x0) / (sqrt (pixelxl,y02-pixelx0,y02))
      [0059]可以將該二階導(dǎo)數(shù)與一階導(dǎo)數(shù)和系數(shù)組合以形成數(shù)學(xué)線性方程式的形式7=&1〃+1^’+&,其中^是二階導(dǎo)數(shù)^’是一階導(dǎo)數(shù),以及a、b和X。是常數(shù)。在某些應(yīng)用中,甚至更高階導(dǎo)數(shù)(如3階、4階等導(dǎo)數(shù))可能是有用的。也可以應(yīng)用其他估算技術(shù),如使用指數(shù)參數(shù)、正弦和余弦函數(shù)、貝塞爾函數(shù)、拉普拉斯變量和其他正交和非正交基的那些技術(shù)。
      [0060]圖5是圖示根據(jù)實施方案的過程500的流程圖。在操作501中,接收紋理圖的紋素的存儲器地址,這些紋素對應(yīng)于圖像中的像素。在操作502中,確定像素全部對應(yīng)于三維模型的共同小平面。在操作503中,使用操作上與存儲器耦合的至少一個處理器,通過將存儲器地址中的差除以圖像中像素之間的距離來計算導(dǎo)數(shù)。在操作504中,使用計算的導(dǎo)數(shù)來預(yù)提取另一個像素位置的信息。計算用于預(yù)提取的導(dǎo)數(shù)是基于像素對應(yīng)于相同小平面的確定。在操作505中,根據(jù)所計算的導(dǎo)數(shù)沿著另一個方向計算導(dǎo)數(shù)。在操作508中,使用計算的導(dǎo)數(shù)來預(yù)提取大致垂直的像素位置的信息。
      [0061]圖6是圖示根據(jù)實施方案的過程600的流程圖。在操作601中,接收要取樣以應(yīng)用于三維模型的紋理圖的第一紋素的第一存儲器地址,該第一紋素對應(yīng)于圖像中的第一像素。在操作602中,接 收紋理圖的第二紋素的第二存儲器地址,所述第二紋素對應(yīng)于圖像中的第二像素。在操作603中,確定第一和第二像素是否對應(yīng)于三維模型的共同小平面。在操作604中,使用操作上與存儲器耦合的至少一個處理器,通過將第一存儲器地址與第二存儲器地址之間的差除以圖像的第一像素和第二像素的位置之間的距離來計算導(dǎo)數(shù)。導(dǎo)數(shù)的計算是基于第一和第二像素對應(yīng)于相同小平面的確定。在操作605中,基于計算的導(dǎo)數(shù)估算紋理圖的第三紋素的第三存儲器地址。在操作606中,讀取第三存儲器地址。
      [0062]可以按上文給定的順序或按適用的不同次序執(zhí)行這些操作??梢栽谟嬎銠C或其他機器中將它們自動化,并且可以將它們編碼在軟件中、固件中或硬編碼為機器可讀指令,并通過能夠執(zhí)行這些指令的一個或多個處理器來運行。
      [0063]圖7圖示根據(jù)各種實施方案的適于實施裝置的硬件系統(tǒng)的示例。此框圖圖示計算機系統(tǒng)700,如個人計算機、視頻游戲控制臺和關(guān)聯(lián)的顯示器、移動裝置、個人數(shù)字助理或適于實踐本發(fā)明的實施方案的其他數(shù)字裝置。計算機系統(tǒng)700包括用于運行軟件應(yīng)用以及可選地運行操作系統(tǒng)的中央處理單元(CPU) 705。CPU705可以由一個或多個同構(gòu)或異構(gòu)處理核組成。存儲器710存儲供CPU705使用的應(yīng)用和數(shù)據(jù)。存儲715提供用于應(yīng)用和數(shù)據(jù)的非易失性存儲和其他計算機可讀介質(zhì),并且可以包括固定磁盤驅(qū)動器、可移動磁盤驅(qū)動器、閃存裝置和⑶-ROM、DVD-ROM、藍光、HD-DVD或其他光學(xué)存儲裝置,以及信號傳輸和存儲介質(zhì)。用戶輸入裝置720將來自一個或多個用戶的用戶輸入傳送到計算機系統(tǒng)700,其示例可以包括鍵盤、鼠標、游戲桿、觸控板、觸摸屏、靜態(tài)或視頻攝像機和/或麥克風(fēng)。網(wǎng)絡(luò)接口725允許計算機系統(tǒng)700經(jīng)由電子通信網(wǎng)絡(luò)與其他計算機系統(tǒng)通信,并且可以包括通過局域網(wǎng)或廣域網(wǎng)(如以太網(wǎng))的有線或無線通信。音頻處理器730調(diào)適成根據(jù)CPU705、存儲器710和/或存儲715提供的指令和/或數(shù)據(jù)生成模擬或數(shù)字音頻輸出。計算機系統(tǒng)700的組件(包括CPU705、存儲器710、數(shù)據(jù)存儲715、用戶輸入裝置720、網(wǎng)絡(luò)接口 725和音頻處理器730)經(jīng)由一條或多條數(shù)據(jù)總線735連接。
      [0064]圖形子系統(tǒng)740還與數(shù)據(jù)總線735和計算機系統(tǒng)700的組件連接。圖形子系統(tǒng)740包括圖形處理單元(GPU)745和圖形存儲器750。圖形存儲器750包括用于存儲輸出圖像的每個像素的像素數(shù)據(jù)的顯示器存儲器(例如,幀緩沖器)??梢詫D形存儲器750與GPU745集成在相同的裝置中、作為分離的裝置與GPU745連接和/或在存儲器710內(nèi)實現(xiàn)??梢詫⑾袼財?shù)據(jù)直接從CPU705提供到圖形存儲器750。作為備選,CPU705為GPU745提供定義期望的輸出圖像的數(shù)據(jù)和/或指令,根據(jù)這些數(shù)據(jù)和/或指令,GPU745生成一個或多個輸出圖像的像素數(shù)據(jù)??梢詫⒍x期望的輸出圖像的數(shù)據(jù)和/或指令存儲器在存儲器710和/或圖形存儲器750中。在一個實施方案中,GPU745包括用于根據(jù)定義場景的幾何形狀、光亮、陰影、紋理、運動和/或攝像機參數(shù)的指令和數(shù)據(jù)生成輸出圖像的像素數(shù)據(jù)的3D渲染能力。GPU745還可以包括能夠執(zhí)行著色器程序的一個或多個可編程執(zhí)行單元。
      [0065]圖形子系統(tǒng)740周期性地輸出來自圖形存儲器750的圖像的像素數(shù)據(jù)以便在顯示裝置755上顯示。顯示裝置755可以是能夠響應(yīng)來自計算機系統(tǒng)700的信號顯示可視信息的任何裝置,包括CRT、IXD、等離子和OLED顯示器。計算機系統(tǒng)700可以向顯示裝置755提供模擬或數(shù)字信號。
      [0066]根據(jù)各種實施方案,CPU705是具有一個或多個處理核的一個或多個通用微處理器??梢允褂镁哂形⑻幚砥黧w系結(jié)構(gòu)的一個或多個CPU705來實現(xiàn)又一些實施方案,該微處理器體系結(jié)構(gòu)專門地調(diào)適成用于高度并行和計算上密集的應(yīng)用,如媒體和交互式娛樂應(yīng)用。
      [0067]系統(tǒng)的組件可以經(jīng)由網(wǎng)絡(luò)來連接,在不同實施方案中,所述網(wǎng)絡(luò)可以是如下的任何組合:因特網(wǎng)、IP網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、廣域網(wǎng)(“WAN”)、局域網(wǎng)(“LAN”)、虛擬專用網(wǎng)絡(luò)(“VPN”)、公眾交換電話網(wǎng)(“PSTN”)或支持上文描述的裝置之間的數(shù)據(jù)通信的任何其他類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)可以包括有線和無線連接,包括光鏈路。許多其他示例是可能的,并且本領(lǐng)域技術(shù)人員根據(jù)本公開會明白許多其他示例。在本文描述中,網(wǎng)絡(luò)可能專門提到或可能未專門提到。
      [0068]在前文說明書中,本發(fā)明是參考其具體實施方案來描述的,但是本領(lǐng)域技術(shù)人員將認識到本發(fā)明不限于此。可以單獨地或聯(lián)合地使用上述本發(fā)明的各種特征和方面。再者,本發(fā)明可以在本文描述那些以外的任何數(shù)量的環(huán)境和應(yīng)用中予以利用而不背離說明書的更寬泛的精神和范圍。因此,本說明書和附圖應(yīng)視為說明性的而非限制性的。
      [0069]應(yīng)該注意,上文論述的方法、系統(tǒng)和裝置旨在僅作為示例。必須強調(diào),各種實施方案可以根據(jù)適用情況省略、替代或添加各種過程或組件。例如,應(yīng)該認識到,在備選實施方案中,可以按與所描述的不同的次序來執(zhí)行這些方法,并且可以添加、省略或組合各種步驟。再有,在各種其他實施方案中可以將相對于某些實施方案描述的特征進行組合??梢圆捎孟嗨频姆绞浇M合這些實施方案的不同方面和要素。再有,應(yīng)該強調(diào),技術(shù)發(fā)展,并因此許多要素是示例,且不應(yīng)解釋為限制本發(fā)明的范圍。
      [0070]在描述中給出具體細節(jié)以便透徹地理解這些實施方案。但是,本領(lǐng)域的技術(shù)人員將理解,即便沒有這些具體細節(jié),也可以實踐這些實施方案。例如,示出一些公知的電路、過程、算法、結(jié)構(gòu)和技術(shù)而沒有非必要的細節(jié),以免混淆這些實施方案。
      [0071]再有,要注意,這些實施方案可以描述為作為流程圖或框圖示出的過程。雖然每個可以將操作描述為順序過程,但是許多操作可以并行地或同時地執(zhí)行。此外,這些操作的次序可以重新安排。過程可以具有附圖中未包含的附加步驟。
      [0072]此外,正如本文公開的,術(shù)語“存儲器”或“存儲器單元”可以表示用于存儲數(shù)據(jù)的一個或多個裝置,包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁RAM、磁心存儲器、磁盤存儲介質(zhì)、光存儲介質(zhì)、閃存裝置或用于存儲信息的其他計算機可讀介質(zhì)。術(shù)語“計算機可讀介質(zhì)”包括但不限于便攜式或固定存儲裝置、光存儲裝置、無線信道、sim卡、其他智能卡和能夠存儲、包含或攜帶指令或數(shù)據(jù)的各種其他介質(zhì)。
      [0073]再者,實施方案可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或其任何組合來實現(xiàn)。當(dāng)在軟件、固件、中間件或微代碼中實現(xiàn)時,可以將用于執(zhí)行必需的任務(wù)的程序代碼或代碼段存儲在如存儲介質(zhì)的計算機可讀介質(zhì)中。處理器可以執(zhí)行這些必需的任務(wù)。
      [0074]描述若干實施方案之后,本領(lǐng)域技術(shù)人員將認識到,在不背離本發(fā)明的精神的前提下可以使用各種修改、替代構(gòu)造和等效物。例如,上文的要素可以僅是更大系統(tǒng)的組件,其中其他規(guī)則可以優(yōu)先于本發(fā)明的應(yīng)用或以其它方式修改本發(fā)明的應(yīng)用。再有,考慮可以在上文要素之前、期間或之后著手多個步驟。因此,上文的描述不應(yīng)視為限制本發(fā)明的范圍。
      【權(quán)利要求】
      1.一種準備預(yù)提取用于圖形處理的紋素的方法,所述方法包括: 接收紋理圖的紋素的存儲器地址,所述紋素對應(yīng)于圖像中的像素; 確定所述像素全部對應(yīng)于三維模型的共同小平面; 使用操作上與存儲器耦合的至少一個處理器,通過將所述存儲器地址中的差除以所述圖像中所述像素之間的距離來計算導(dǎo)數(shù);以及 使用所述計算的導(dǎo)數(shù)來預(yù)提取另一個像素位置的信息, 其中計算用于預(yù)提取的所述導(dǎo)數(shù)是基于所述像素對應(yīng)于所述相同小平面的確定。
      2.如權(quán)利要求1所述的方法,其還包括: 根據(jù)所述計算的導(dǎo)數(shù)沿著另一個方向計算導(dǎo)數(shù);以及 使用所述計算的導(dǎo)數(shù)來預(yù)提取大致垂直的像素位置的信息。
      3.一種用于準備預(yù)提取用于圖形處理的紋素的方法,所述方法包括: 接收要取樣以應(yīng)用于三維模型的紋理圖的第一紋素的第一存儲器地址,所述第一紋素對應(yīng)于圖像中的第一像素; 接收所述紋理圖的第二紋素的第二存儲器地址,所述第二紋素對應(yīng)于所述圖像中的第二像素; 使用操作上與存儲器耦合的至少一個處理器,通過將所述第一存儲器地址與所述第二存儲器地址之間的差除以所述圖像的所述第一像素和所述第二像素的位置之間的距離來計算導(dǎo)數(shù);以及` 基于所述計算的導(dǎo)數(shù)估算所述紋理圖的第三紋素的第三存儲器地址。
      4.如權(quán)利要求3所述的方法,其還包括: 確定所述第一像素和所述第二像素是否對應(yīng)于三維模型的共同小平面, 其中所述導(dǎo)數(shù)的計算是基于所述第一像素和所述第二像素對應(yīng)于所述相同小平面的確定。
      5.如權(quán)利要求4所述的方法,其還包括: 確定所述圖像中的第三像素是否對應(yīng)于所述第一像素和所述第二像素所對應(yīng)的所述小平面, 其中所述第三存儲器地址的所述估算是基于所述第三像素對應(yīng)于所述第一像素和所述第二像素所對應(yīng)的所述相同小平面的確定。
      6.如權(quán)利要求3所述的方法,其還包括: 接收要取樣以應(yīng)用于所述三維模型的所述紋理圖的至少一個附加紋素的至少一個附加存儲器地址,所述至少一個附加紋素對應(yīng)于所述圖像的至少一個附加像素; 通過將低階導(dǎo)數(shù)的差除以所述圖像的所述第一像素或所述第二像素與所述至少一個附加像素的位置之間的距離來計算高階導(dǎo)數(shù);以及 基于所述計算的高階導(dǎo)數(shù)來預(yù)測所述紋理圖的紋素的存儲器地址。
      7.如權(quán)利要求6所述的方法,其還包括: 確定所述第一像素和所述第二像素是否對應(yīng)于三維模型的共同小平面;以及確定所述至少一個附加像素是否對應(yīng)于與所述第一像素和所述第二像素所對應(yīng)的所述小平面不同的小平面, 其中所述預(yù)測所述存儲器地址是基于所述至少一個附加像素對應(yīng)于與所述第一像素和所述第二像素所對應(yīng)的所述小平面不同的小平面的確定。
      8.如權(quán)利要求3所述的方法,其還包括: 接收所述紋理圖的第四紋素的第四存儲器地址,所述第四紋素對應(yīng)于所述圖像中的第四像素; 通過將所述第一存儲器地址與所述第四存儲器地址之間的差除以所述圖像的所述第一像素和所述第四像素的位置之間的距離來計算導(dǎo)數(shù);以及 基于所述計算的導(dǎo)數(shù)估算所述紋理圖的第五紋素的第五存儲器地址, 其中所述第一紋素和所述第二紋素之間的方向與所述第一紋素和所述第四紋素之間的方向相對于彼此是正交的。
      9.如權(quán)利要求8所述的方法,其還包括: 確定所述第一像素和所述第四像素是否對應(yīng)于所述三維模型的共同小平面, 其中所述導(dǎo)數(shù)的所述計算是基于所述第一像素和所述第四像素對應(yīng)于所述相同小平面的確定。
      10.如權(quán)利要求9所述的方法,其還包括: 確定所述圖像中的第五像素是否對應(yīng)于所述第一像素和所述第四像素所對應(yīng)的所述小平面, 其中所述第五存儲器地址的所述估算是基于所述第五像素對應(yīng)于所述第一像素和所述第四像素所對應(yīng)的所述相同小平面的確定。
      11.如權(quán)利要求3所述的方法,其還包括: 讀取所述第三存儲器地址;以及 將所述第三紋素應(yīng)用于所述圖像中的第三像素。
      12.如權(quán)利要求3所述的方法,其中像素沿著軸線。
      13.如權(quán)利要求3所述的方法,其中所述三維模型的小平面選自由下列項組成的組:直線、三角形、四邊形、六邊形元件、子圖形和點子圖形。
      14.如權(quán)利要求3所述的方法,其還包括: 讀取所述第三存儲器地址;以及 將所述第三紋素應(yīng)用于所述圖像中的第三像素。
      15.如權(quán)利要求3所述的方法,其中所述三維模型用于視頻游戲或計算機輔助繪圖(CAD)0
      16.如權(quán)利要求3所述的方法,其中所述操作由圖形處理單元(GPU)來執(zhí)行。
      17.如權(quán)利要求3所述的方法,其中所述操作按所示的次序執(zhí)行。
      18.如權(quán)利要求3所述的方法,其中每個操作由操作上與所述存儲器耦合的所述至少一個處理器來執(zhí)行。
      19.一種體現(xiàn)指示指令的信息的機器可讀有形存儲介質(zhì),所述指令用于促使一個或多個機器執(zhí)行如權(quán)利要求3所述的操作。
      20.一種執(zhí)行計算機程序中的指令的計算機系統(tǒng),所述計算機程序指令包括用于執(zhí)行如權(quán)利要求3所述的操作的程序代碼。
      【文檔編號】G06T1/00GK103782324SQ201280044105
      【公開日】2014年5月7日 申請日期:2012年9月11日 優(yōu)先權(quán)日:2011年9月12日
      【發(fā)明者】S.奧斯曼 申請人:索尼電腦娛樂公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1