日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

提取图片纹理_Fundamentals Of Computer Graphics 第十一章 纹理映射(中)

發(fā)布時間:2024/9/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提取图片纹理_Fundamentals Of Computer Graphics 第十一章 纹理映射(中) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文翻譯虎書第十一章紋理映射的11.3部分

11.3 抗鋸齒紋理查詢

紋理映射的第二個基本問題是抗鋸齒。渲染紋理映射的圖像是一個采樣過程:將紋理映射到表面上,然后將表面投影到圖像中,將在整個圖像平面上產(chǎn)生2D函數(shù),我們以像素為單位對其進行采樣。就像我們在第9章中看到的那樣,當圖像包含細節(jié)或銳利邊緣時,使用點樣本執(zhí)行此操作會產(chǎn)生鋸齒失真-并且由于紋理的整個點都要引入細節(jié),因此它們成為像我們在圖11.3中看到的鋸齒問題的主要來源。

就像線條或三角形的抗鋸齒光柵化,抗鋸齒光線跟蹤(參見第13.4節(jié))或?qū)D像進行降采樣(參見第9.4節(jié))一樣,解決方案是使每個像素不是點樣本,而是圖像面積的平均值,區(qū)域類似像素的大小。使用用于抗鋸齒光柵化和光線跟蹤的相同超級采樣方法,如果有足夠的樣本,則可以在不更改紋理映射機制的情況下獲得出色的結(jié)果:像素區(qū)域內(nèi)的許多樣本將落在紋理圖中的不同位置,并平均使用不同紋理查找計算出的陰影結(jié)果是一種精確的方法,可以估算像素上圖像的平均顏色。但是,使用詳細的紋理需要很多樣本才能獲得良好的結(jié)果,這很慢。在表面存在紋理的情況下,高效地計算該面積平均值是紋理抗鋸齒的第一個重要的主題。

紋理圖像通常由光柵圖像定義,因此,與升采樣圖像一樣,也要考慮重采樣問題(參見第9.4節(jié))。解決方案同樣可以運用在紋理上:使用重采樣濾波在紋理像素之間進行插值。

在以下各節(jié)中,我們將對每個主題進行擴展

11.3.1 一個像素的覆蓋區(qū)

使抗鋸齒紋理比其他類型的抗鋸齒更為復雜的原因在于,渲染圖像與紋理之間的關(guān)系不斷變化。每個像素值都應計算為圖像中屬于像素的區(qū)域的平均顏色,在通常情況下,像素對應單個表面,這相當于對表面上的區(qū)域求平均。 如果表面顏色來自紋理,則依次對紋理的相應部分進行取平均,這稱為像素的紋理空間覆蓋區(qū)。 圖11.18說明了正方形區(qū)域(可能是較低分辨率圖像中的像素區(qū)域)覆蓋區(qū)如何映射到地板紋理空間中大小和形狀完全不同的區(qū)域

圖11.18 圖像中相同大小的正方形區(qū)域在紋理空間中的覆蓋區(qū)的大小和形狀都不同。

回憶一下使用紋理進行渲染所涉及的三個空間:將3D點映射到圖像中的投影π和將3D點映射到紋理空間中的紋理坐標函數(shù)

。為了處理像素覆蓋區(qū),我們需要了解這兩個映射的組合:首先向后跟隨π,從圖像到表面,然后向前跟隨 。組合 決定了像素覆蓋區(qū):像素覆蓋區(qū)是圖片在 映射下的像素的方形區(qū)域

紋理抗鋸齒的核心問題是計算像素覆蓋區(qū)上紋理的平均值。通常,要精確地做到這一點可能是一件相當復雜的工作:對于一個具有復雜表面形狀的遙遠物體,覆蓋區(qū)可能在紋理空間中覆蓋了大面積的復雜的形狀,或者可能是幾個不連續(xù)的區(qū)域。但是在典型情況下,像素落在表面的平滑區(qū)域中,該區(qū)域映射到紋理中的單個區(qū)域。

因為

既包含從圖像到表面的映射,又包含從表面到紋理的映射,所以覆蓋區(qū)的大小和形狀取決于觀察情況和紋理坐標函數(shù)。當表面更靠近相機時,像素覆蓋區(qū)會更小;當同一表面移得更遠時,占地面積會更大。當以傾斜角度觀察表面時,像素在表面上的覆蓋區(qū)會變長,這通常意味著它在紋理空間中也會變長。即使使用固定的視圖,紋理坐標函數(shù)也會導致覆蓋區(qū)變化:如果覆蓋區(qū)變形,則覆蓋區(qū)的大小也會發(fā)生變化;如果變形,則即使是俯視圖也可以將其拉長。

但是,為了找到一個用于計算抗鋸齒查詢的高效算法,需要一些近似值。

圖 11.19 可以使用從(x,y)到(u,v)的映射的導數(shù)來近似像素的紋理空間覆蓋區(qū)。 x和y的偏導數(shù)與x和y等值線的圖像平行(藍色),并跨過一個平行四邊形(橙色陰影),近似于精確輪廓線的彎曲形狀(黑色輪廓)

當一個函數(shù)是平滑的,一個線性近似值通常是有用的。對于紋理抗鋸齒的情況,這意味著從圖片空間到紋理空間的

映射被近似看作一個從2D到2D的映射:

是一個2X2的,有些類似 的導數(shù)的矩陣。如果我們表示圖片空間的 點和紋理空間的 點,他就是

這四個導數(shù)描述了紋理坐標

是如何隨著一個在圖片中的點 變化而變化的。

這種近似的幾何解釋是,它表示圖像中以x為中心的單位大小的正方形像素區(qū)域?qū)⒔朴成涞郊y理空間中以

為中心且其邊緣與矢量 和 平行的平行四邊形中。

導數(shù)矩陣

很有用,因為它講述了整個圖像(近似)紋理空間覆蓋區(qū)變化的整個過程。數(shù)量較大的導數(shù)表示較大的紋理空間覆蓋區(qū),并且導數(shù)向量 和 之間的關(guān)系表示形狀。當它們正交且長度相同時,覆蓋區(qū)為正方形,并且它們變得偏斜和/或長度相差很大,覆蓋區(qū)將會被拉長。

現(xiàn)在,我們已經(jīng)得到了通常被認為是這種形式問題的“正確答案”:在特定圖像空間位置處過濾的紋理樣本應該是此點紋理坐標導數(shù)定義的平行四邊形形狀輪廓上的紋理貼圖的平均值。這已經(jīng)有了一些假設(shè),即從圖像到紋理的映射是平滑的,但是對于獲得出色的圖像質(zhì)量來說它是足夠準確的。但是,該平行四邊形面積平均值已經(jīng)太昂貴而無法精確計算,因此使用了各種近似值。紋理抗鋸齒的方法在逼近此查找時在速度/質(zhì)量折衷方面有所不同。我們將在以下各節(jié)中討論這些

11.3.2 重采樣

當覆蓋區(qū)小于紋理像素時,我們會將紋理映射到圖像中時將其放大。 這種情況類似于對圖像進行上采樣,并且主要考慮因素是在紋理像素之間進行插值以生成平滑的圖像,其中紋理像素網(wǎng)格不明顯。 就像在圖像上采樣中一樣,此平滑過程由重建濾波器定義,該重采樣濾波器用于計算紋理空間中任意位置的紋理樣本。(參見圖11.20。)

圖11.20 紋理過濾中的主要問題隨覆蓋區(qū)大小而變化。 對于覆蓋區(qū)(左),需要在像素之間進行插值以避免塊狀失真; 對于大覆蓋區(qū),挑戰(zhàn)在于有效地找到許多像素的平均值

注意事項與圖像重采樣幾乎相同,但有一個重要區(qū)別。在圖像重采樣中,任務是在規(guī)則的網(wǎng)格上計算輸出樣本,并且在可分離的重采樣濾波器的情況下,這種規(guī)則性實現(xiàn)了重要的優(yōu)化。在紋理過濾中,查找模式不規(guī)則,必須分別計算樣本。這意味著大型高質(zhì)量的重建濾波器使用起來非常昂貴,因此,通常用于紋理的最高質(zhì)量濾波器就是雙線性插值。

雙線性插值紋理樣本的計算與計算通過雙線性插值上采樣的圖像中的一個像素相同。首先,我們根據(jù)紋理像素坐標(實值)表示紋理空間采樣點,然后讀取四個相鄰紋理像素的值并取其平均值。紋理通常在單位平方上進行參數(shù)設(shè)置,并且紋理像素的位置與任何圖像中的像素相同,在

方向上以 的間隔和在 中以 的間隔放置,紋素(0,0)被插入到邊緣半個紋理像素處以保持對稱.(有關(guān)完整說明,請參見第9章。)Color tex_sample_bilinear(Texture t, float u, float v) {u_p = u * t.width - 0.5v_p = v * t.height - 0.5iu0 = floor(u_p); iu1 = iu0 + 1iv0 = floor(v_p); iv1 = iv0 + 1a_u = (iu1 - u_p); b_u = 1 - a_ua_v = (iv1 - v_p); b_v = 1 - a_vreturn a_u * a_v * t[iu0][iv0] + a_u * b_v * t[iu0][iv1] +b_u * a_v * t[iu1][iv0] + b_u * b_v * t[iu1][iv1] }

在許多系統(tǒng)中,此操作成為重要的性能瓶頸,主要是因為從紋理數(shù)據(jù)中獲取四個紋素值涉及到內(nèi)存延遲。紋理的采樣點的模式是不規(guī)則的,因為從圖像到紋理空間的映射是任意的,但通常是連貫的,因為附近的圖像點傾向于映射到可能讀取相同紋理像素的附近紋理點。因此,高性能系統(tǒng)具有專門用于紋理采樣的特殊硬件,該硬件可處理插值并管理最近使用的紋理數(shù)據(jù)的緩存,以最大程度地減少從存儲紋理數(shù)據(jù)的內(nèi)存中提取慢速數(shù)據(jù)的次數(shù)。

閱讀第9章后,您可能會抱怨線性插值對于某些要求苛刻的應用程序可能不夠平滑。但是,始終可以通過使用更好的濾波器將紋理重新采樣到更高的分辨率來使其足夠好,從而使紋理足夠平滑以至于雙線性插值效果良好。

11.3.3 多級漸遠紋理

僅在放大紋理的情況下做好插值就足夠了:像素占位面積比紋理像素間距小。當像素覆蓋區(qū)覆蓋許多紋理像素時,良好的抗鋸齒功能需要計算許多紋理像素的平均值以平滑信號,以便可以對其進行安全采樣。

一種計算覆蓋區(qū)上的平均紋理值的非常準確的方法是找到覆蓋區(qū)中的所有紋理像素并將其相加。但是,當占用空間很大時,這可能會非常昂貴-僅一次查找就可能需要讀取數(shù)千個紋素。更好的方法是在不同大小和位置的各個區(qū)域上預先計算并存儲紋理的平均值。

這個想法的一個非常流行的版本被稱為“MIP映射”或mipmapping。Mipmap是一系列紋理,這些紋理均包含相同的圖像,但分辨率越來越低。原始的全分辨率紋理圖像稱為mipmap的基本級別或級別0,而級別1則是通過獲取該圖像并將其在每個維度中降采樣2倍而生成的,從而得到具有像素數(shù)量的四分之一。大致來說,此圖像中的紋素是0級圖像中面積為2乘2紋素的正方形區(qū)域的平均值。

可以繼續(xù)進行此過程,以定義所需的任意多個mipmap級別:通過對k級圖像進行降采樣2倍來計算k - 1級圖像。級別k的紋素對應于原始紋理中面積為

紋素的正方形區(qū)域。例如,從1024×1024紋理圖像開始,我們可以生成具有11個級別的mipmap:0級為1024×1024;級別1為512×512,依此類推,直到級別10,只有一個紋理像素。這種具有以一系列越來越低的采樣率表示相同內(nèi)容的圖像的結(jié)構(gòu),被稱為圖像金字塔,其基于將所有較小圖像堆疊在原始圖像頂部的視覺隱喻。

11.3.4 使用Mipmap進行基礎(chǔ)的紋理濾波

使用mipmap或圖像金字塔,與單獨訪問許多紋理像素相比,可以更有效地完成紋理過濾。當我們需要在大面積上平均的紋理值時,我們只使用來自更高級別的mipmap的值,這些值已經(jīng)是圖像大面積上的平均值。最簡單,最快的方法是從mipmap查找單個值,然后選擇級別,以使該級別上的紋素覆蓋的大小與像素覆蓋區(qū)的整體大小大致相同。當然,像素覆蓋區(qū)的形狀可能與紋素表示的(始終為正方形)區(qū)域的形狀完全不同,我們可以預期會產(chǎn)生一些失真。

暫時擱置一個問題,當像素覆蓋區(qū)具有拉長的形狀時該怎么做,假設(shè)覆蓋區(qū)是寬度D的平方,以全分辨率紋理中的像素表示。哪個級別的mipmap適合采樣?由于第k級的紋理像素覆蓋了寬度為

的正方形,因此選擇k

所以我們讓

。當然,這在大多數(shù)情況下會給出k的非整數(shù)值,并且我們只存儲了整數(shù)級別的mipmap圖像。 兩種可能的解決方案是,僅針對最接近k的整數(shù)查找值(高效,但會在級別之間的突然過渡處產(chǎn)生接縫),或者查找針對k的兩個最接近整數(shù)的值并線性插值(兩次,但更流暢)。在我們實際寫下對mipmap進行采樣的算法之前,我們必須決定當覆蓋區(qū)不是正方形時如何選擇“寬度”D。 一些可能的方法是使用面積的平方根或找到覆蓋區(qū)的最長軸并將其稱為寬度。易于計算的實際折衷方法是使用最長邊的長度:

Color mipmap_sample_trilinear(Texture mip[], float u, float v,matrix J) {D = max_column_norm(J)k = log2(D)k0 = floor(k); k1 = k0 + 1a = k1 - k; b = 1 - ac0 = tex_sample_bilinear(mip[k0], u, v)c1 = tex_sample_bilinear(mip[k1], u, v)return a * c0 + b * c1 }

基本的mipmapping可以很好地消除鋸齒,但是由于它無法處理細長的或各向異性的像素覆蓋區(qū),因此在以掠射角度查看表面時效果不佳。在代表觀察者站立的表面的大平面上最常見。 可以以非常陡峭的角度觀察地板上較遠的點,從而產(chǎn)生非常各向異性的覆蓋區(qū),該覆蓋區(qū)在較大的正方形區(qū)域內(nèi)會發(fā)生映射。生成的圖像將在水平方向上顯得模糊。

11.3.5 各向異性濾波

Mipmap可以與多個查詢一起使用,以更好地近似伸長的覆蓋區(qū)。 這個想法是根據(jù)覆蓋區(qū)的最短軸而不是最大軸選擇mipmap級別,然后將沿長軸間隔的幾個查找平均在一起。(見圖11.21。)

圖11.21 使用三種不同策略對具有挑戰(zhàn)性的測試場景進行抗鋸齒的結(jié)果(參考圖像左側(cè)顯示了詳細的結(jié)構(gòu)):簡單地通過最近鄰插值獲取單個點樣本; 使用mipmap金字塔對每個像素的紋理中的正方形區(qū)域求平均; 使用來自mipmap的幾個樣本來平均紋理中的各向異性區(qū)域。

總結(jié)

以上是生活随笔為你收集整理的提取图片纹理_Fundamentals Of Computer Graphics 第十一章 纹理映射(中)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 我们2018在线观看免费版高清 | 欧美日韩一区二区三区国产精品成人 | av大全在线观看 | 亚洲在线观看一区二区 | 91呦呦| 久久久久久欧美精品se一二三四 | 亚洲第一在线播放 | 91精品国产一区二区三区 | 午夜伦理一区二区 | 精产国品一区二区三区 | 国产第一精品 | 国产一区二区免费看 | 成人在线免费高清视频 | 色综合视频在线观看 | 看毛片网站| 成人免费视频免费观看 | 亚洲图片欧美另类 | 亚洲午码 | 国产伦精品一区二区三区高清版禁 | 影音先锋成人资源网 | 国产传媒在线 | 国产亚洲精品久久久 | 91情侣在线 | 日本成人在线免费视频 | 亚洲国产高清在线 | 一女双乳被两男吸视频 | 国产亚洲色婷婷久久 | 亚洲免费黄色片 | 亚洲综合中文字幕在线 | 97在线视频观看 | 调教少妇视频 | 中文字幕一区二 | 动漫av网站 | 日韩午夜 | 欧洲av无码放荡人妇网站 | 精品久久久久久久久中文字幕 | 亚洲区小说区图片区 | 在线看片一区二区 | 伊人久久大香线蕉成人综合网 | 日韩在线激情 | 撸大师av | 伊人久久久久久久久久久 | 这里只有精品视频在线观看 | 国产乱子伦农村叉叉叉 | 国产精品一级无码 | av一二区| 狠狠干视频网 | 精品国产a| jizjiz中国少妇高潮水多 | 黄色网址网站 | 免费一级a毛片夜夜看 | 三上悠亚人妻中文字幕在线 | 欧美色综合天天久久综合精品 | 欧美成人精品一区二区三区在线观看 | 天天射寡妇 | 亚洲黄色影院 | 免费一级a毛片夜夜看 | 欧美精品久久久久久久免费 | 久久精品国产亚洲av久一一区 | 久久久久久九九九九九 | 日本h漫在线观看 | 少妇紧身牛仔裤裤啪啪 | 欧美专区日韩专区 | 91成年人网站 | 成人www视频| av导航网站 | 老鸭窝久久 | 午夜羞羞羞 | 一级片免费观看视频 | 成年人黄色在线观看 | 久久亚洲成人av | 欧美性猛交xxxx偷拍洗澡 | 亚洲成人中文字幕在线 | 亚洲黄网在线 | 蜜臀中文字幕 | 亚洲一区在线不卡 | 国产日产精品一区二区三区 | 欧洲金发美女大战黑人 | 激情黄色小说网站 | 九九热精品视频在线观看 | 风间由美一区二区三区 | 亚洲福利电影网 | 亚洲精品高清视频在线观看 | 亚洲国产精彩中文乱码av | 国产精品美女久久 | 久久性感美女视频 | 欧美日韩亚洲天堂 | 少妇又色又紧又黄又刺激免费 | 一区二区三区四区免费视频 | 精品中文字幕在线 | 一级视频在线免费观看 | 欧美精品自拍视频 | 日韩精品视频久久 | 97av视频在线 | 制服诱惑一区二区三区 | 中文字幕狠狠 | 亚洲国产精品久久久 | 中国国产精品 | 国产aⅴ无码片毛片一级一区2 |