国产精品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>

      用于各向異性紋理過濾的較短印跡的制作方法

      文檔序號(hào):6655713閱讀:231來(lái)源:國(guó)知局

      專利名稱::用于各向異性紋理過濾的較短印跡的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明的一個(gè)或一個(gè)以上方面大體上涉及計(jì)算機(jī)圖形學(xué),且更特定來(lái)說涉及過濾紋理圖數(shù)據(jù)。
      背景技術(shù)
      :常規(guī)的圖形處理器是通過為讀取和過濾紋理圖樣本而開發(fā)的系統(tǒng)和方法來(lái)例示的。為了簡(jiǎn)化圖形處理器內(nèi)執(zhí)行的紋理圖過濾,對(duì)紋理進(jìn)行預(yù)先過濾,并將經(jīng)預(yù)先過濾的紋理的各種分辨率存儲(chǔ)為很小規(guī)模的(mip)映射紋理圖。圖1A為展示包括最高分辨率紋理圖(紋理圖101)的很小規(guī)模的映射紋理的現(xiàn)有技術(shù)的概念圖。紋理圖102、紋理圖103和紋理圖104為連續(xù)降低分辨率的紋理圖、紋理貼圖(mipmap),每一者都存儲(chǔ)經(jīng)預(yù)先過濾的紋理樣本。經(jīng)典的紋理貼圖是各向同性過濾的,即,使用正方形過濾圖案在水平與垂直方向上對(duì)稱地過濾。經(jīng)各向同性過濾的紋理貼圖為具有在長(zhǎng)度上類似的長(zhǎng)紋理軸與短紋理軸的表面形成高質(zhì)量圖像。然而,當(dāng)經(jīng)各向同性過濾的紋理應(yīng)用于“直立”觀察的后退表面(recedingsurface)時(shí),混疊假象(模糊)對(duì)觀察者變得明顯,因?yàn)樵诩y理應(yīng)用于所述表面時(shí),紋理在一個(gè)維度(后退方向)中有效“拉伸”。印跡115為紋理空間中的像素印跡,其中位置135為像素中心。圖1B說明紋理圖101的現(xiàn)有技術(shù)應(yīng)用,其應(yīng)用于在圖像空間中后退的表面140的像素。當(dāng)在圖像空間中觀察時(shí),印跡115(橢圓)表現(xiàn)為印跡116(圓形)。紋理空間中形成圓形的像素印跡內(nèi)紋理樣本的各向同性過濾形成高質(zhì)量圖像,而形成橢圓(例如印跡115)的像素印跡內(nèi)紋理樣本的各向同性過濾形成具有混疊假象的圖像。與各向同性過濾相反,各向異性過濾使用矩形過濾圖案,對(duì)于在紋理空間中具有在長(zhǎng)度上不相似的長(zhǎng)軸與短軸的印跡而言形成較少的混疊假象。圖1C說明包括明顯比長(zhǎng)軸130短的短軸125的印跡115。圖1D說明沿著長(zhǎng)軸130的紋理樣本150的各向異性過濾的現(xiàn)有技術(shù)應(yīng)用。從一個(gè)或一個(gè)以上紋理貼圖讀取的紋理樣本150經(jīng)各向同性過濾而產(chǎn)生經(jīng)過濾的紋理樣本。與使用三線性插值以產(chǎn)生經(jīng)過濾的紋理樣本時(shí)各向同性過濾的8個(gè)紋理樣本或者使用雙線性插值以產(chǎn)生經(jīng)過濾的紋理樣本時(shí)各向同性過濾的4個(gè)紋理樣本相比,經(jīng)典的各向異性過濾在非正方形圖案中過濾16個(gè)紋理樣本。因此,各向異性過濾讀取并處理與三線性過濾的紋理樣本的兩倍一樣多的紋理樣本。通常,產(chǎn)生較高質(zhì)量圖像(例如使用各向異性過濾產(chǎn)生的圖像)需要讀取并處理較多的紋理樣本以產(chǎn)生每一個(gè)經(jīng)過濾的紋理樣本。因此,由于可用于讀取存儲(chǔ)在存儲(chǔ)器中的紋理樣本的有限帶寬和圖形處理器內(nèi)有限的計(jì)算資源,因此紋理樣本過濾性能隨著圖像質(zhì)量改善而降低。因此,需要平衡各向異性紋理樣本過濾的性能與圖像質(zhì)量,以最小化對(duì)于所需水平的各向異性紋理樣本過濾性能的圖像質(zhì)量降級(jí)。
      發(fā)明內(nèi)容本發(fā)明涉及用于縮短印跡以減少在各向異性過濾期間使用的樣本的數(shù)目的新系統(tǒng)和方法。某些各向異性過濾是使用較少紋理樣本來(lái)執(zhí)行的,從而減少讀取的紋理樣本的數(shù)目,并加速紋理樣本過濾計(jì)算??删幊绦o(knob)值用于控制在各向異性過濾期間使用的紋理樣本的數(shù)目,從而允許用戶確定改善的紋理圖性能與紋理過濾質(zhì)量之間的平衡。本發(fā)明的減少用于各向異性紋理圖過濾的紋理樣本的數(shù)目的方法的各種實(shí)施例包括接收對(duì)數(shù)比值(logratiovalue);修改所述對(duì)數(shù)比值以產(chǎn)生第一修改對(duì)數(shù)比值;和基于所述第一修改對(duì)數(shù)比值來(lái)確定將過濾的紋理樣本的第一數(shù)目。本發(fā)明的在紋理空間中縮短像素的印跡的方法的各種實(shí)施例包括接收所述印跡的長(zhǎng)軸長(zhǎng)度;接收所述印跡的短軸長(zhǎng)度;使用所述長(zhǎng)軸長(zhǎng)度和所述短軸長(zhǎng)度計(jì)算對(duì)數(shù)比值;和基于旋鈕的可編程值修改所述對(duì)數(shù)比值,以產(chǎn)生對(duì)應(yīng)于縮短的印跡的經(jīng)修改的對(duì)數(shù)比。本發(fā)明的各種實(shí)施例包括用于確定將進(jìn)行各向異性過濾的紋理樣本的數(shù)目的各向異性單元。所述各向異性單元包括對(duì)數(shù)比計(jì)算單元,其經(jīng)配置以獲得長(zhǎng)軸長(zhǎng)度和短軸長(zhǎng)度并產(chǎn)生對(duì)數(shù)比值;和對(duì)數(shù)比修改單元,其經(jīng)配置以接收所述對(duì)數(shù)比值并修改所述對(duì)數(shù)比值以產(chǎn)生第一修改對(duì)數(shù)比值。本發(fā)明的各種實(shí)施例包括可編程圖形處理器,其用于使用經(jīng)各向異性過濾的紋理樣本來(lái)產(chǎn)生圖像。附圖展示根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面的示范性實(shí)施例,然而,不應(yīng)認(rèn)為附圖使本發(fā)明限于所示實(shí)施例,而是僅用于解釋和理解。圖1A為展示很小規(guī)模的映射紋理的現(xiàn)有技術(shù)的概念圖。圖1B、圖1C和圖1D說明針對(duì)表面的紋理樣本的現(xiàn)有技術(shù)應(yīng)用。圖2說明根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面確定用于各向異性紋理圖過濾計(jì)算的紋理樣本數(shù)目的方法的實(shí)施例。圖3A說明根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面修改用于確定將從用于各向異性紋理圖過濾計(jì)算的精細(xì)分辨率紋理圖讀取的樣本數(shù)目的對(duì)數(shù)比值的方法的實(shí)施例。圖3B說明根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面修改用于確定將從用于各向異性紋理圖過濾計(jì)算的粗糙分辨率紋理圖讀取的樣本數(shù)目的對(duì)數(shù)比值的方法的實(shí)施例。圖4為根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面包括紋理單元的著色器(shader)單元的一部分的方框圖。圖5為根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面的包括主計(jì)算機(jī)和圖形子系統(tǒng)的個(gè)別計(jì)算機(jī)系統(tǒng)的示范性實(shí)施例的方框圖。具體實(shí)施例方式在以下描述中,陳述多個(gè)特定細(xì)節(jié)以提供對(duì)本發(fā)明的徹底理解。然而,所屬領(lǐng)域的技術(shù)人員將了解,可在沒有一個(gè)或一個(gè)以上這些特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明。在其它情況中,為了避免混淆本發(fā)明,沒有描述眾所周知的特征。在常規(guī)的圖形處理器中,使用所屬領(lǐng)域的技術(shù)人員已知的技術(shù)計(jì)算表示短軸的長(zhǎng)度與長(zhǎng)軸的長(zhǎng)度的比率(例如短軸/長(zhǎng)軸)的比率值。短軸的長(zhǎng)度用于確定計(jì)算經(jīng)過濾紋理樣本所需的對(duì)應(yīng)于最高分辨率紋理貼圖(mipmap)的精細(xì)紋理圖細(xì)節(jié)水平(levelofdetail,LOD)。比率值(即,各向異性)用于確定在各向異性過濾期間將被讀取和處理以產(chǎn)生經(jīng)過濾紋理樣本的紋理樣本的數(shù)目。長(zhǎng)軸和短軸界定表示像素在紋理圖上的投影的印跡??删幊痰摹靶o值可用于使印跡沿長(zhǎng)軸縮短,從而減少在各向異性過濾期間讀取和處理的紋理樣本的數(shù)目。用戶可對(duì)旋鈕值的一者或一者以上進(jìn)行編程,從而平衡改善的性能(時(shí)鐘周期或存儲(chǔ)帶寬)與圖像質(zhì)量。在替代實(shí)施例中,驅(qū)動(dòng)器可基于用戶性能模式選擇(例如最快、折衷、高質(zhì)量,和類似選擇)對(duì)旋鈕值進(jìn)行編程。舉例來(lái)說,用戶可使用一使用下拉菜單的用戶界面、定位對(duì)應(yīng)于每一旋鈕的滑動(dòng)條、或類似方法來(lái)選擇性能模式。而且,旋鈕值可經(jīng)預(yù)定或編程以用于每一紋理,即關(guān)聯(lián)于紋理識(shí)別符(ID)。旋鈕值也可用于控制立方圖(用于立方環(huán)境映射)、一維紋理、二維紋理或三維紋理、或其它很小規(guī)模的映射紋理的各向異性過濾。在本發(fā)明的實(shí)施例中,三個(gè)旋鈕值用于影響經(jīng)過濾以產(chǎn)生經(jīng)各向異性過濾的紋理值的樣本的數(shù)目。第一旋鈕減少基于在過濾期間施加于每一樣本的加權(quán)值而使用的樣本的數(shù)目。特定地,可從計(jì)算中省略以較小程度起作用的樣本,因此不會(huì)從存儲(chǔ)器讀取或處理所述樣本。第二旋鈕減少?gòu)拇植贚OD紋理圖中使用的樣本的數(shù)目。可在不引入嚴(yán)重視覺假象的情況下使用來(lái)自粗糙LOD紋理圖的較少樣本,因?yàn)殚L(zhǎng)軸和短軸每一者在粗糙LOD紋理圖中與它們?cè)诰?xì)LOD紋理圖中的長(zhǎng)度的兩倍一樣長(zhǎng)。因此,粗糙LOD紋理圖中的某些樣本可位于粗糙LOD紋理圖中印跡的外部。最后,第三旋鈕通過對(duì)樣本計(jì)算的數(shù)目施加偏置來(lái)減少樣本的數(shù)目。當(dāng)使用雙線性或三線性各向異性過濾時(shí),可使用第三旋鈕來(lái)減少樣本的數(shù)目,而當(dāng)使用三線性各向異性過濾時(shí),使用第一和第二旋鈕。圖2說明根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面確定用于各向異性紋理圖過濾計(jì)算的紋理樣本數(shù)目的方法的實(shí)施例。在步驟205,計(jì)算短軸長(zhǎng)度的2基對(duì)數(shù)(base-twologarithm)(log)以產(chǎn)生短軸對(duì)數(shù)值(logminorvalue)。在步驟210,計(jì)算長(zhǎng)軸長(zhǎng)度的2基對(duì)數(shù)以產(chǎn)生長(zhǎng)軸對(duì)數(shù)值(logmajorvalue)。在步驟215,通過從短軸對(duì)數(shù)值減去長(zhǎng)軸對(duì)數(shù)值計(jì)算對(duì)數(shù)比值。所述對(duì)數(shù)比值等于比率值的2基對(duì)數(shù)。在支持最大各向異性為1/16的實(shí)施例中,對(duì)數(shù)比值在-4到0的范圍內(nèi),其中對(duì)數(shù)比值0表示各向同性印跡。增加對(duì)數(shù)比值會(huì)減小在對(duì)數(shù)比的范圍中平均化的樣本的數(shù)目。計(jì)算經(jīng)各向異性過濾的紋理值所需的處理量與所需樣本的數(shù)目成比例。而且,在對(duì)數(shù)空間中執(zhí)行計(jì)算簡(jiǎn)化了計(jì)算且可能更為有效,例如,使用對(duì)數(shù)空間中的減法代替除法。同樣,使用加法代替乘法。在步驟220,將精細(xì)紋理圖LOD(LODfine)設(shè)定為短軸對(duì)數(shù)的整數(shù)部分?;蛘撸ㄟ^將長(zhǎng)軸對(duì)數(shù)值與對(duì)數(shù)比值相加以獲得短軸對(duì)數(shù)的整數(shù)部分來(lái)計(jì)算LODfine。在替代實(shí)施例中,在步驟215,將各向異性偏置或偏移值應(yīng)用于在步驟215中計(jì)算出的對(duì)數(shù)比值以產(chǎn)生代替所述對(duì)數(shù)比值的偏置對(duì)數(shù)比值。各向異性偏置值增加對(duì)數(shù)比值,引起較低分辨率紋理貼圖的選擇。在替代實(shí)施例中,通過將長(zhǎng)軸對(duì)數(shù)值與偏置對(duì)數(shù)比值相加來(lái)計(jì)算LODfine。短軸對(duì)數(shù)的分?jǐn)?shù)部分為L(zhǎng)ODfrac,或者長(zhǎng)軸對(duì)數(shù)值與對(duì)數(shù)比值之和的分?jǐn)?shù)部分為L(zhǎng)ODfrac。將粗糙紋理圖LOD(LODcoarse)設(shè)定為L(zhǎng)ODfine增加1。在步驟225,如本文結(jié)合圖3A進(jìn)一步描述,基于一個(gè)或一個(gè)以上旋鈕值來(lái)修改對(duì)數(shù)比值以產(chǎn)生第一修改對(duì)數(shù)比值,這潛在地縮短了印跡。在步驟230,確定基于第一修改對(duì)數(shù)比值的紋理樣本的第一數(shù)目。在一個(gè)實(shí)施例中,計(jì)算第一比率第一比率=2(第一修改對(duì)數(shù)比)。使用第一比率計(jì)算紋理樣本的第一數(shù)目。當(dāng)?shù)谝槐嚷蕿?或更大時(shí),紋理樣本的第一數(shù)目為1。另外,使用如下等式紋理樣本的第一數(shù)目=2*ceil(.5/(第一比率))?;蛘撸褂没诘谝槐嚷实牟煌仁絹?lái)確定紋理樣本的第一數(shù)目。在步驟235,如果LODfrac不等于零,那么,步驟240和245完成。否則,步驟250在步驟235之后完成。在步驟240,如本文結(jié)合圖3A進(jìn)一步描述,基于旋鈕值來(lái)修改對(duì)數(shù)比值以產(chǎn)生第二修改對(duì)數(shù)比值,這潛在地縮短了印跡。在步驟245,確定基于第二修改對(duì)數(shù)比值的紋理樣本的第二數(shù)目。在一個(gè)實(shí)施例中,計(jì)算第二比率第二比率=2(第二修改對(duì)數(shù)比)。使用第二比率計(jì)算紋理樣本的第二數(shù)目。當(dāng)?shù)诙嚷实扔诨虼笥?時(shí),紋理樣本的第二數(shù)目為1。另外,使用如下等式紋理樣本的第二數(shù)目=2*ceil(.5/(第二比率))。或者,使用基于第二比率的不同等式來(lái)確定紋理樣本的第二數(shù)目。在步驟250,從存儲(chǔ)器中讀取由LODfine指定的紋理貼圖(mipmap)中的紋理樣本的第一數(shù)目。在步驟250,當(dāng)LODfrac不等于零時(shí),也從存儲(chǔ)器中讀取由LODcoarse指定的紋理貼圖中的紋理樣本的第二數(shù)目。在步驟255,對(duì)在步驟250中從存儲(chǔ)器中讀取的紋理樣本進(jìn)行各向異性過濾以產(chǎn)生經(jīng)過濾的紋理樣本。圖3A說明根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面完成圖2中步驟220以修改對(duì)數(shù)比值從而產(chǎn)生第一修改對(duì)數(shù)比值的方法的實(shí)施例。在步驟305,接收對(duì)數(shù)比、LODfine、LODcoarse和LODfrac,并將對(duì)數(shù)比值復(fù)制到第一修改對(duì)數(shù)比值。如果在步驟305第一旋鈕的值不是零,那么步驟310完成。否則,方法進(jìn)行到步驟315。在步驟310,當(dāng)LODfrac接近1時(shí)修改第一修改對(duì)數(shù)比值以減少紋理樣本(即,從對(duì)應(yīng)于LODfine的紋理圖中讀取的紋理樣本)的第一數(shù)目。在某些實(shí)施例中,當(dāng)LODfrac接近1時(shí)通過增加第一修改對(duì)數(shù)比值來(lái)修改第一修改對(duì)數(shù)比值。在一個(gè)實(shí)施例中,可將第一旋鈕值設(shè)定為三個(gè)不同值中的一個(gè),從而允許用戶或應(yīng)用程序控制至少一個(gè)閾值。當(dāng)1與LODfrac的差小于或等于閾值的至少一者時(shí),修改第一修改對(duì)數(shù)比值,從而有效地縮短了印跡??赏ㄟ^依據(jù)1與LODfrac之間的差是小于還是等于一個(gè)或兩個(gè)閾值增加量來(lái)縮短印跡。在一實(shí)施例中,完成步驟305和310以使用表1中所示的代碼計(jì)算第一修改對(duì)數(shù)比值,其中l(wèi)odf為L(zhǎng)ODfrac,knob1為第一旋鈕的值,modified_logratio1為第一修改對(duì)數(shù)比,TEX_ONE為0×100(1.0in.8),且TEX_SCALE為8。以說明方式,使用C來(lái)定義所述代碼。然而,可使用任何其它語(yǔ)言來(lái)定義所述代碼。表1t=TEX_ONE-Tolnt(LODfrac);if(TOInt(knob1)!=0)modified_logratio1=logratio+MAX(0,log2table(t>>2)-(ToInt(knob1)<<TEX_SCALE));elsemodified_logratio1=logratio;在表2中展示產(chǎn)生log2表的實(shí)施例的內(nèi)容的函數(shù)。根據(jù)表1所示的代碼,使用LODfrac計(jì)算第一修改對(duì)數(shù)比值以讀取log2表。借助于說明,使用C定義所述函數(shù)。然而,可使用任何其它語(yǔ)言來(lái)定義所述函數(shù)。表2//forxin0..256return-log2(MAX(1/64,(x>>2)/64.0))staticintminuslog2[]={1536,1536,1280,1130,1024,942,874,817,768,724,686,650,618,589,561,536,512,490,468,449,430,412,394,378,362,347,333,319,305,292,280,268,256,245,234,223,212,202,193,183,174,164,156,147,138,130,122,114,106,99,91,84,77,70,63,56,4g,43,36,30,24,18,12,6,0,};//return-log2(arg)whereargisin,scaledbyTEX_SCALEstaticintlog2table(intarg){assert(arg>=0&amp;&amp;arg<=64);returnminuslog2[arg];}如果在步驟315第三旋鈕的值不是零,那么完成步驟320。否則,方法進(jìn)行到步驟325。在步驟320,基于第三旋鈕的值進(jìn)一步修改第一修改對(duì)數(shù)比值以減少樣本的第一數(shù)目。在一個(gè)實(shí)施例中,第一修改對(duì)數(shù)比值加上可編程的偏置值。舉例來(lái)說,可將十六個(gè)偏置值存儲(chǔ)在使用第三旋鈕的值作為指數(shù)而讀取的可編程表中。在一實(shí)施例中,完成步驟320以使用如下等式計(jì)算第一修改對(duì)數(shù)比值modified_logratio1=modified_logratio1+knob3table(knob3)。在表3中展示產(chǎn)生knob3表的實(shí)施例的內(nèi)容的函數(shù)。借助于說明,使用C定義所述函數(shù)。然而,可使用任何其它語(yǔ)言來(lái)定義所述函數(shù)。表3//return16differenttweakvaluesforlogratio.0indexmustreturn0.staticintknob3table(intarg){assert(arg>=0&amp;&amp;arg<=15);return((arg<<8)/32);//returnscaledbyTEX_SCALE}在步驟325,當(dāng)使用最大值為16個(gè)樣本用于各向異性過濾時(shí),將第一修改對(duì)數(shù)比值限制在-1024與零之間的值?;蛘?,基于針對(duì)各向異性過濾而支持的樣本的不同最大數(shù)目將第一修改對(duì)數(shù)比限制在另一值。圖3B說明根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面完成圖2中步驟240以修改對(duì)數(shù)比值而產(chǎn)生第二修改對(duì)數(shù)比值的方法的實(shí)施例。在步驟335,接收對(duì)數(shù)比、LODfine、LODcoarse和LODfrac,并將對(duì)數(shù)比值復(fù)制到第二修改對(duì)數(shù)比值。如果在步驟335第一旋鈕的值不是零,那么步驟340完成。否則,方法進(jìn)行到步驟345。在步驟340,當(dāng)LODfrac“接近零”時(shí)修改第二修改對(duì)數(shù)比值。特定地,當(dāng)LODfrac在由第一旋鈕的值指定的閾值的至少一者中時(shí),修改第二修改對(duì)數(shù)比值以減少紋理樣本(即,從對(duì)應(yīng)于LODcoarse的紋理圖中讀取的紋理樣本)的第二數(shù)目。當(dāng)LODfrac小于或等于由第一旋鈕的值指定的閾值時(shí),修改第二修改對(duì)數(shù)比值。在一實(shí)施例中,完成步驟335和340以使用表4中所示的代碼計(jì)算第二修改對(duì)數(shù)比值,其中l(wèi)odf為L(zhǎng)ODfrac,knob1為第一旋鈕的值,modified2_logratio1為第二修改對(duì)數(shù)比,TEX_ONE為0×100(1.0in.8),且TEX_SCALE為8。在表2中展示log1表的一實(shí)施例的內(nèi)容。以說明方式,使用C來(lái)定義所述代碼。然而,可使用任何其它語(yǔ)言來(lái)定義所述代碼。表4t=ToInt(LODfrac);if(TOInt(knob1)!=0)modified2_logratio1=logratio+MAX(0,log2table(t>>2)-(ToInt(knob1)<<TEX_SCALE));elsemodified2_logratio1=logratio;如果在步驟345第二旋鈕的值不是零,那么步驟350完成。否則,方法進(jìn)行到步驟355。在步驟350,基于第二旋鈕的值計(jì)算第三修改對(duì)數(shù)比值以減少?gòu)膶?duì)應(yīng)于LODcoarse的紋理圖中讀取的紋理樣本的第二數(shù)目。在一個(gè)實(shí)施例中,將對(duì)數(shù)比值復(fù)制到第三修改對(duì)數(shù)比值,且第二旋鈕的值基于LODfrac修改第三修改對(duì)數(shù)比值。舉例來(lái)說,給第三修改對(duì)數(shù)比值加上1與LODfrac之間的差。當(dāng)?shù)谌薷膶?duì)數(shù)比值大于第二修改值時(shí),將第二修改值設(shè)定至第三修改對(duì)數(shù)比值的值。在一實(shí)施例中,完成步驟345和350以使用表4中所示的代碼計(jì)算第二修改對(duì)數(shù)比值,其中l(wèi)odf為L(zhǎng)ODfrac,knob2為第二旋鈕的值,modified2_logratio1為第二修改對(duì)數(shù)比,且modified3_logratio1為第三修改對(duì)數(shù)比。以說明方式,使用C來(lái)定義所述代碼。然而,可使用任何其它語(yǔ)言來(lái)定義所述代碼。表5if(TOInt(knob2)?。?)modified3_logratio1=logratio+(TEX_ONE-ToInt(LODfrac));elsemodified3_logratio1=logratio;modified2_logratio1=MAX(modified3_logratio1,modified2_logratio1);如果在步驟355第三旋鈕的值不是零,那么完成步驟360。否則,方法進(jìn)行到步驟365。在步驟360,基于第三旋鈕的值進(jìn)一步修改第二修改對(duì)數(shù)比值以減少紋理樣本的第二數(shù)目。在一個(gè)實(shí)施例中,第二修改對(duì)數(shù)比值加上可編程的偏置值。舉例來(lái)說,可將十六個(gè)偏置值存儲(chǔ)在使用第三旋鈕值讀取的可編程表中。在一實(shí)施例中,完成步驟360以使用如下等式計(jì)算第二修改對(duì)數(shù)比值modified2_logratio1=modified2_logratio1+knob3table(knob3),其中在表3中展示knob3表的內(nèi)容。在步驟365,當(dāng)使用最大值為16個(gè)樣本用于各向異性過濾時(shí),將第二修改對(duì)數(shù)比值限制在-1024與零之間的值以產(chǎn)生第一修改對(duì)數(shù)比值?;蛘?,基于針對(duì)各向異性過濾而支持的紋理樣本的不同最大數(shù)目將第二修改對(duì)數(shù)比值限制在另一值。圖4為本文將結(jié)合圖5進(jìn)一步描述的圖形處理管線的一部分的方框圖。所述圖形處理管線包括根據(jù)本發(fā)明的一個(gè)或一個(gè)以上方面的紋理單元400。在某些實(shí)施例中,紋理單元400接收來(lái)自光柵器的數(shù)據(jù)(例如程序指令)和關(guān)聯(lián)于片斷的參數(shù)(紋理ID、例如s和t的紋理坐標(biāo),和類似參數(shù))。片斷由像素與基元的交叉所形成?;◣缀螆D形,例如點(diǎn)、線、三角形、四邊形、網(wǎng)格、表面,和類似圖形。片斷可覆蓋像素或像素的一部分。同樣,像素可包括一個(gè)或一個(gè)以上片斷。在一實(shí)施例中,紋理單元400從光柵器接收短軸長(zhǎng)度和長(zhǎng)軸長(zhǎng)度。在另一實(shí)施例中,紋理單元400使用從光柵器接收的參數(shù)(例如紋理坐標(biāo)、紋理坐標(biāo)梯度,或類似參數(shù))計(jì)算短軸長(zhǎng)度和長(zhǎng)軸長(zhǎng)度。紋理單元400包括各向異性單元405。各向異性單元405內(nèi)的控制單元420處理程序指令,例如將一個(gè)或一個(gè)以上可編程旋鈕值(例如第一旋鈕值、第二旋鈕值、第三旋鈕值,或類似值)載入到對(duì)數(shù)比修改單元415中的指令。對(duì)數(shù)比修改單元415包括存儲(chǔ)元件(例如寄存器)以存儲(chǔ)所述一個(gè)或一個(gè)以上旋鈕值。光柵器產(chǎn)生的參數(shù)由各向異性單元405內(nèi)的對(duì)數(shù)比計(jì)算單元410接收。對(duì)數(shù)比計(jì)算單元410計(jì)算如先前結(jié)合圖2描述的對(duì)數(shù)比值。對(duì)數(shù)比值由對(duì)數(shù)比計(jì)算單元410輸出到對(duì)數(shù)比修改單元415。對(duì)數(shù)比修改單元415修改對(duì)數(shù)比值以產(chǎn)生第一修改對(duì)數(shù)比值,且當(dāng)LODfrac不等于零時(shí),對(duì)數(shù)比修改單元415還修改對(duì)數(shù)比值以產(chǎn)生第二修改對(duì)數(shù)比值。對(duì)數(shù)比修改單元415所執(zhí)行的操作用以減少經(jīng)讀取和過濾以產(chǎn)生經(jīng)過濾紋理樣本的紋理樣本的數(shù)目。樣本定位單元425從對(duì)數(shù)比修改單元415接收第一修改對(duì)數(shù)比值。當(dāng)LODfrac不等于零時(shí),樣本定位單元425還從對(duì)數(shù)比修改單元415接收第二修改對(duì)數(shù)比值。樣本定位單元425確定將從LODfine所指定的紋理貼圖讀取的紋理樣本的第一數(shù)目。樣本定位單元425確定將從LODcoarse所指定的紋理貼圖讀取的紋理樣本的第二數(shù)目。樣本定位單元425還確定第二數(shù)目的紋理樣本的位置(例如紋理坐標(biāo))和第一數(shù)目的紋理樣本的位置。樣本定位單元425也使用所屬領(lǐng)域的技術(shù)人員已知的技術(shù)計(jì)算加權(quán)值,以供在從LODfine所指定的紋理貼圖和LODcoarse所指定的紋理貼圖中讀取的紋理樣本的過濾期間使用。樣本定位單元425將樣本位置、加權(quán)值、LODfine和LODcoarse輸出到地址計(jì)算單元450。地址計(jì)算單元450使用紋理單元400所接收的紋理參數(shù)(紋理ID,和類似參數(shù))來(lái)確定用于從存儲(chǔ)器讀取紋理樣本(第一數(shù)目的紋理樣本或第一和第二數(shù)目的紋理樣本)的地址。地址計(jì)算單元450將地址輸出到讀取界面460。讀取界面460將地址和讀取請(qǐng)求輸出到存儲(chǔ)器,例如高速緩沖存儲(chǔ)器、RAM、ROM,或類似存儲(chǔ)器。從存儲(chǔ)器讀取的紋理樣本是由紋理過濾單元470從存儲(chǔ)器接收。紋理過濾單元470從地址計(jì)算單元450接收加權(quán)值,并使用雙線性插值、三線性插值或各向異性過濾來(lái)過濾從存儲(chǔ)器讀取的紋理樣本,以產(chǎn)生經(jīng)過濾的紋理樣本。將經(jīng)過濾的紋理樣本輸出到本文將進(jìn)一步描述的著色器單元以計(jì)算每一片斷的顏色。圖5為通常指定為500的計(jì)算系統(tǒng)的示范性實(shí)施例的方框圖,計(jì)算系統(tǒng)500包括主計(jì)算機(jī)510和圖形子系統(tǒng)507,圖形子系統(tǒng)507包括紋理單元400的一實(shí)施例。計(jì)算系統(tǒng)500可為臺(tái)式計(jì)算機(jī)、服務(wù)器、膝上型計(jì)算機(jī)、掌上型計(jì)算機(jī)、平板計(jì)算機(jī)、游戲控制臺(tái)、例如PDA或蜂窩式電話的便攜式無(wú)線終端機(jī)、基于計(jì)算機(jī)的模擬器,或類似物。主計(jì)算機(jī)510包括主處理器514,主處理器514可包括系統(tǒng)存儲(chǔ)器控制器,其直接介接到主存儲(chǔ)器512,或可通過系統(tǒng)界面515與主存儲(chǔ)器512通信。系統(tǒng)界面515可為I/O(輸入/輸出)界面或橋接裝置,其包括系統(tǒng)存儲(chǔ)器控制器,所述系統(tǒng)存儲(chǔ)器控制器直接介接到主存儲(chǔ)器512。此項(xiàng)技術(shù)中已知的系統(tǒng)界面515的實(shí)例包括Intel北橋。主計(jì)算機(jī)510通過系統(tǒng)界面515和界面517與圖形子系統(tǒng)507通信。圖形子系統(tǒng)507包括局部存儲(chǔ)器540和可編程圖形處理器505??删幊虉D形處理器505使用存儲(chǔ)器來(lái)存儲(chǔ)圖形數(shù)據(jù)(包括紋理圖)和程序指令,其中圖形數(shù)據(jù)是輸入到可編程圖形處理器505內(nèi)的計(jì)算單元或從可編程圖形處理器505內(nèi)的計(jì)算單元輸出的任何數(shù)據(jù)。圖形存儲(chǔ)器是用于存儲(chǔ)圖形數(shù)據(jù)或?qū)⒂煽删幊虉D形處理器505執(zhí)行的程序指令的任何存儲(chǔ)器。圖形存儲(chǔ)器可包括主存儲(chǔ)器512、直接耦合到可編程圖形處理器505的局部存儲(chǔ)器540、耦合到可編程圖形處理器505內(nèi)的計(jì)算單元的存儲(chǔ)資源、和類似部分。存儲(chǔ)資源可包括寄存器文件、高速緩沖存儲(chǔ)器、FIFO(先入先出存儲(chǔ)器),和類似物。除界面517之外,可編程圖形處理器505還包括圖形處理管線503、存儲(chǔ)器控制器520和輸出控制器580。在界面517處接收的數(shù)據(jù)和程序指令可傳遞到圖形處理管線503內(nèi)的幾何圖形處理器530,或通過存儲(chǔ)器控制器520而寫入到局部存儲(chǔ)器540。除了與局部存儲(chǔ)器540和界面517通信之外,存儲(chǔ)器控制器520還通過圖形處理管線503中的讀取與寫入界面和輸出控制器580中的讀取界面與圖形處理管線503和輸出控制器580通信。在圖形處理管線503內(nèi),幾何圖形處理器530和可編程圖形片斷處理管線(片斷處理管線560)執(zhí)行多種計(jì)算功能。這些功能中的某些是表格查找、標(biāo)量與向量加法、乘法、除法、坐標(biāo)系統(tǒng)映射、向量法向的計(jì)算、鋪嵌(tessellation)、導(dǎo)數(shù)的計(jì)算、插值,和類似功能。根據(jù)需要來(lái)配置幾何圖形處理器530和片斷處理管線560,從而在經(jīng)過圖形處理管線503的多次通過中或在經(jīng)過片斷處理管線560的多次通過中執(zhí)行數(shù)據(jù)處理操作。經(jīng)過可編程圖形處理器505、圖形處理管線503或片斷處理管線560的每次通過都以光柵操作單元565的可選處理結(jié)束。頂點(diǎn)程序(vertexprogram)為由主處理器514編譯以供在幾何圖形處理器530和光柵器550內(nèi)執(zhí)行的頂點(diǎn)程序指令的序列。著色器程序?yàn)橛芍魈幚砥?14編譯以供在片斷處理管線560內(nèi)執(zhí)行的著色器程序指令的序列。幾何圖形處理器530從界面517或存儲(chǔ)器控制器520接收程序指令(頂點(diǎn)程序指令和著色器程序指令)流,并使用所述數(shù)據(jù)執(zhí)行向量浮點(diǎn)運(yùn)算或其它處理運(yùn)算。程序指令配置幾何圖形處理器530、光柵器550和片斷處理管線560內(nèi)的子單元。程序指令和數(shù)據(jù)存儲(chǔ)在圖形存儲(chǔ)器(例如主存儲(chǔ)器512、局部存儲(chǔ)器540或可編程圖形處理器505內(nèi)的存儲(chǔ)資源的部分)中。當(dāng)主存儲(chǔ)器512的一部分用于存儲(chǔ)程序指令和數(shù)據(jù)時(shí),主存儲(chǔ)器512的所述部分可被釋放(uncache)從而增加可編程圖形處理器505存取的性能?;蛘?,使用以數(shù)據(jù)或類似物編碼的程序指令將配置信息寫入到幾何圖形處理器530、光柵器550和片斷處理管線560內(nèi)的寄存器。幾何圖形處理器530所處理的數(shù)據(jù)和程序指令從幾何圖形處理器530傳遞到光柵器550。光柵器550為取樣單元,其處理基元并產(chǎn)生子基元數(shù)據(jù),例如片斷數(shù)據(jù),包括關(guān)聯(lián)于片斷的參數(shù)(紋理ID、紋理坐標(biāo),和類似參數(shù))。光柵器550通過對(duì)幾何圖形處理器530所處理的數(shù)據(jù)執(zhí)行掃描轉(zhuǎn)換,將基元轉(zhuǎn)換成子基元數(shù)據(jù)。光柵器550將片斷數(shù)據(jù)和著色器程序指令輸出到片斷處理管線560。著色器程序通過指定計(jì)算和計(jì)算精確度來(lái)配置片斷處理管線560以處理片斷數(shù)據(jù)。根據(jù)需要通過著色器程序指令來(lái)配置片斷著色器555,從而在片斷著色器555內(nèi)的多次通過中執(zhí)行片斷數(shù)據(jù)處理操作。片斷著色器555包括先前描述的紋理單元400的實(shí)施例。在一個(gè)實(shí)施例中,紋理單元400經(jīng)配置以通過存儲(chǔ)器控制器520讀取存儲(chǔ)在局部存儲(chǔ)器540或主存儲(chǔ)器512中的著色器程序指令。在計(jì)算系統(tǒng)500的某些實(shí)施例中,圖形處理性能受到(例如)主存儲(chǔ)器512與可編程圖形處理器505之間、局部存儲(chǔ)器540與圖形處理管線503之間和類似情況的存儲(chǔ)帶寬限制。在所述實(shí)施例中,修改對(duì)數(shù)比值以減少?gòu)木植看鎯?chǔ)器540或主存儲(chǔ)器512讀取的紋理樣本的數(shù)目可改善圖形處理性能。在計(jì)算系統(tǒng)500的另一實(shí)施例中,圖形處理性能受到片斷處理管線560內(nèi)的計(jì)算資源(例如乘法器、加法器和類似物)限制。在所述實(shí)施例中,通過減少使用各向異性過濾進(jìn)行過濾的紋理樣本的數(shù)目來(lái)修改對(duì)數(shù)比值以簡(jiǎn)化紋理過濾,可改善圖形處理性能。在各種實(shí)施例中,可使用一個(gè)或一個(gè)以上經(jīng)編程的旋鈕值來(lái)控制在各向異性過濾期間使用的紋理樣本數(shù)目的減少,從而允許用戶確定改善的圖形處理性能與圖像質(zhì)量之間的平衡。片斷著色器555將經(jīng)處理的片斷數(shù)據(jù)(例如顏色和深度)和從著色器程序指令產(chǎn)生的代碼字輸出到光柵操作單元565。光柵操作單元565包括與存儲(chǔ)器控制器520的讀取界面和寫入界面,光柵操作單元565通過所述界面存取存儲(chǔ)在局部存儲(chǔ)器540或主存儲(chǔ)器512中的數(shù)據(jù)。光柵操作單元565根據(jù)需要而在關(guān)聯(lián)于經(jīng)處理片斷數(shù)據(jù)的像素位置(由x、y坐標(biāo)指定的圖像位置)處使用存儲(chǔ)在局部存儲(chǔ)器540或主存儲(chǔ)器512中的片斷數(shù)據(jù)和像素?cái)?shù)據(jù)來(lái)執(zhí)行近與遠(yuǎn)的平面剪切(planeclipping)和光柵操作,例如印版(stencil)、z測(cè)試、彎曲,和類似操作。將來(lái)自光柵操作單元565的輸出數(shù)據(jù)在關(guān)聯(lián)于輸出數(shù)據(jù)的像素位置處寫回到局部存儲(chǔ)器540或主存儲(chǔ)器512,并將結(jié)果(例如圖像數(shù)據(jù))保存在圖形存儲(chǔ)器中。當(dāng)處理完成時(shí),使用輸出控制器580提供圖形子系統(tǒng)507的輸出585?;蛘撸魈幚砥?14通過存儲(chǔ)器控制器520、界面517和系統(tǒng)界面515讀取存儲(chǔ)在局部存儲(chǔ)器540中的圖像。根據(jù)需要通過操作碼來(lái)配置輸出控制器580,以將數(shù)據(jù)輸送到顯示設(shè)備、網(wǎng)絡(luò)、電子控制系統(tǒng)、其它計(jì)算系統(tǒng)500、其它圖形子系統(tǒng)507,或類似物。以上已參照特定實(shí)施例描述了本發(fā)明。然而,所屬領(lǐng)域的技術(shù)人員將了解,在不脫離隨附權(quán)利要求書中陳述的本發(fā)明的較寬精神和范圍的情況下,可對(duì)本發(fā)明做出各種修改和改變。舉例來(lái)說,在替代實(shí)施例中,本文陳述的印跡縮短技術(shù)可部分地或完整地實(shí)施在軟件程序或片斷著色器555所執(zhí)行的片斷程序中。因此,應(yīng)在說明性而不是限制性意義上考慮上述描述和附圖。方法項(xiàng)中的步驟的羅列并非意味著以任何特定次序執(zhí)行所述步驟,除非在所述權(quán)利要求中明確規(guī)定。權(quán)利要求1.一種減少用于各向異性紋理圖過濾的紋理樣本的一數(shù)目的方法,其包含接收一對(duì)數(shù)比值;修改所述對(duì)數(shù)比值以產(chǎn)生一第一修改對(duì)數(shù)比值;和基于所述第一修改對(duì)數(shù)比值來(lái)確定將要過濾的紋理樣本的一第一數(shù)目。2.根據(jù)權(quán)利要求1所述的方法,其中從一對(duì)應(yīng)于LODfine的紋理圖中讀取所述第一數(shù)目的紋理樣本。3.根據(jù)權(quán)利要求1所述的方法,其中修改所述對(duì)數(shù)比值以產(chǎn)生所述第一修改對(duì)數(shù)比值的所述步驟包括對(duì)所述對(duì)數(shù)比值施加一偏置。4.根據(jù)權(quán)利要求3所述的方法,其中通過一旋鈕值來(lái)確定所述偏置。5.根據(jù)權(quán)利要求1所述的方法,其中修改所述對(duì)數(shù)比值以產(chǎn)生所述第一修改對(duì)數(shù)比值的所述步驟是基于LODfrac。6.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含修改所述對(duì)數(shù)比值以產(chǎn)生一第二修改對(duì)數(shù)比值;和基于所述第二修改對(duì)數(shù)比值來(lái)確定將要過濾的紋理樣本的一第二數(shù)目。7.根據(jù)權(quán)利要求6所述的方法,其中從一對(duì)應(yīng)于LODcoarse的紋理圖中讀取所述第二數(shù)目的紋理樣本。8.根據(jù)權(quán)利要求6所述的方法,其中修改所述對(duì)數(shù)比值以產(chǎn)生一第二修改對(duì)數(shù)比值的所述步驟是基于LODfrac。9.一種在紋理空間中縮短一像素的一印跡的方法,其包含接收所述印跡的一長(zhǎng)軸長(zhǎng)度;接收所述印跡的一短軸長(zhǎng)度;使用所述長(zhǎng)軸長(zhǎng)度和所述短軸長(zhǎng)度計(jì)算一對(duì)數(shù)比值;和基于一旋鈕的一可編程值修改所述對(duì)數(shù)比值,以產(chǎn)生一對(duì)應(yīng)于一縮短的印跡的經(jīng)修改的對(duì)數(shù)比。10.根據(jù)權(quán)利要求9所述的方法,其中使用所述旋鈕的所述可編程值來(lái)減少?gòu)囊粚?duì)應(yīng)于LODfine的紋理圖中讀取的紋理樣本的一第一數(shù)目。11.根據(jù)權(quán)利要求9所述的方法,其中使用所述旋鈕的所述可編程值來(lái)減少?gòu)囊粚?duì)應(yīng)于LODcoarse的紋理圖中讀取的紋理樣本的一第二數(shù)目。12.根據(jù)權(quán)利要求9所述的方法,其中所述修改步驟包括將所述旋鈕的所述可編程值與一LODfrac組合以修改所述對(duì)數(shù)比值。13.根據(jù)權(quán)利要求9所述的方法,其中所述修改步驟包括基于所述旋鈕的所述可編程值來(lái)確定一施加到所述對(duì)數(shù)比值的偏置。14.根據(jù)權(quán)利要求9所述的方法,其進(jìn)一步包含一基于所述經(jīng)修改的對(duì)數(shù)比確定將要從一紋理圖中讀取的紋理樣本的一第一數(shù)目的步驟。15.一種用于確定將進(jìn)行各向異性過濾的紋理樣本的一數(shù)目的各向異性單元,其包含一對(duì)數(shù)比計(jì)算單元,其經(jīng)配置以獲得一長(zhǎng)軸長(zhǎng)度和一短軸長(zhǎng)度并產(chǎn)生一對(duì)數(shù)比值;和一對(duì)數(shù)比修改單元,其經(jīng)配置以接收所述對(duì)數(shù)比值并修改所述對(duì)數(shù)比值以產(chǎn)生一第一修改對(duì)數(shù)比值。16.根據(jù)權(quán)利要求15所述的各向異性單元,其中所述對(duì)數(shù)比修改單元存儲(chǔ)用于修改所述對(duì)數(shù)比值的至少一個(gè)可編程旋鈕值。17.根據(jù)權(quán)利要求15所述的各向異性單元,其中所述對(duì)數(shù)比修改單元經(jīng)配置以響應(yīng)于所述至少一個(gè)可編程旋鈕值而產(chǎn)生一第二修改對(duì)數(shù)比值。18.根據(jù)權(quán)利要求16所述的各向異性單元,其進(jìn)一步包含一樣本定位單元,所述樣本定位單元經(jīng)配置以基于所述第一修改對(duì)數(shù)比值確定紋理樣本的一第一數(shù)目,并基于所述第二修改對(duì)數(shù)比值確定紋理樣本的一第二數(shù)目。19.根據(jù)權(quán)利要求15所述的各向異性單元,其進(jìn)一步包含一紋理過濾單元,所述紋理過濾單元經(jīng)配置以接收所述第一數(shù)目的紋理樣本和所述第二數(shù)目的紋理樣本,并產(chǎn)生一經(jīng)過濾的紋理樣本。20.根據(jù)權(quán)利要求15所述的各向異性單元,其中所述各向異性單元包括于一可編程圖形處理器內(nèi),所述可編程圖形處理器包括一光柵器,其經(jīng)配置以處理基元并產(chǎn)生包括參數(shù)的片斷數(shù)據(jù);一紋理單元,其包括所述各向異性單元,所述紋理單元經(jīng)配置以從所述光柵器接收所述參數(shù)。全文摘要縮短印跡是一種用于減少經(jīng)各向異性過濾的紋理樣本的數(shù)目以確定關(guān)聯(lián)于一圖形片斷的一紋理值的技術(shù)。減少經(jīng)各向異性過濾的紋理樣本的數(shù)目會(huì)減少讀取的紋理樣本的數(shù)目并簡(jiǎn)化過濾計(jì)算??删幊绦o用于在紋理空間中縮短一像素的印跡,從而減少在各向異性過濾期間使用的紋理樣本的數(shù)目。這些旋鈕允許用戶確定改善的紋理圖性能與各向異性紋理過濾質(zhì)量之間的一平衡。文檔編號(hào)G06T15/20GK1950851SQ200580014338公開日2007年4月18日申請(qǐng)日期2005年3月28日優(yōu)先權(quán)日2004年3月30日發(fā)明者沃爾特·E·多諾萬(wàn),保羅·S·赫克伯特申請(qǐng)人:輝達(dá)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1