• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Mipmap 和 ClipMap (轉載)

            Posted on 2009-03-22 17:24 Herbert 閱讀(752) 評論(0)  編輯 收藏 引用

            MipMap 機制

                     Mipmap是目前應用最為廣泛的紋理映射技術之一。Willams將低一級圖像的每邊的分辨率取為高一級圖像的每邊的分辨率的二分之一,而同一級分辨率的紋理組則由紅、綠、藍三個分量的紋理數組組成。由于這一個查找表包含了同一紋理區域在不同分辨率下的紋理顏色值,因此被稱為Mipmap。Mipmap可以用一個四棱錐來描述。,如圖所示。該四棱錐的總層數為 ,S為初始紋理圖像每邊的分辨率。若最底層圖像為給定的原始圖像,則第二層圖像可以由最底層圖像與邊長為2個象素的正方形濾波器做卷積運算得到。一般的,第 層圖像可以由第 層圖像與邊長為 個象素的正方形濾波器做卷積運算得到。例如,某一紋理圖像的Mipmap的層數為10層,第10層圖像為一個象素,它由原始圖像經與邊長為512個象素的正方形濾波器做卷積運算壓縮得到,其分辨率為1×1。    Mipmap紋理映射在確定屏幕上每一象素內可見的平均紋理顏色時需要計算三個參數,即屏幕象素中心在紋理平面上映射點的坐標 和屏幕象素內可見表面在紋理平面上所映射的邊長d。其中 取屏幕象素內可見表面在紋理平面上近似正方形映射區域的中心,d取該近似正方形的邊長。顯然,d決定了應該在哪一級分辨率的紋理圖像平面上查找Mipmap表。雖然我們很容易通過紋理映射變換和取景變換的逆變換求得屏幕象素中心在紋理平面上映射點的參數坐標 ,但是d的值確不容易確定。一般而言,d的取值應使得在紋理平面上以 為中心,d為邊長的正方形盡可能地覆蓋屏幕象素地實際映射區域,從而可取該正方形內平均紋理顏色值作為屏幕象素實際映射區域的平均紋理顏色的近似值。在實際處理時,可取d為屏幕象素在紋理屏幕上映射區域的最大邊長。


            OpenGL中的Mipmap紋理貼圖

                     OpenGL實現了Mipmap的功能。void glTexImage2D ( GLenum target, GLint level, GLint components, GLsizei width, glsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels)函數定義一個二維紋理映射。參數target是常數GL_TEXTURE_2D。參數level表示多級分辨率的紋理圖像的級數,若只有一種分辨率,則level設為0。參數components是一個從1到4的整數,指出選擇了R、G、B、A中的哪些分量用于調整和混合,1表示選擇了R分量,2表示選擇了R和A兩個分量,3表示選擇了R、G、B三個分量,4表示選擇了R、G、B、A四個分量。參數width和height給出了紋理圖像的長度和寬度,參數border為紋理邊界寬度,它通常為0,width和height必須是2m+2b,這里m是整數,長和寬可以有不同的值,b是border的值。紋理映射的最大尺寸依賴于OpenGL,但它至少必須是使用64x64(若帶邊界為66×66),若width和height設置為0,則紋理映射有效地關閉。參數format和type描述了紋理映射的格式和數據類型,參數format可以是GL_COLOR_INDEX、GL_RGB、GL_RGBA、GL_RED、GL_GREEN、GL_BLUE、GL_ALPHA、GL_LUMINANCE或GL_LUMINANCE_ALPHA(注意:不能用GL_STENCIL_INDEX和GL_DEPTH_COMPONENT)。類似地,參數type是GL_BYPE、GL_UNSIGNED_BYTE、GL_SHORT、 GL_UNSIGNED_SHORT、GL_INT、GL_UNSIGNED_INT、GL_FLOAT或GL_BITMAP。參數pixels包含了紋理圖像數據,這個數據描述了紋理圖像本身和它的邊界。紋理映射是一個相當復雜的過程,OpenGL最基本的執行紋理映射所需的步驟主要是:1)定義紋理glTexImage2D();2)控制濾波 glTexParameterf();3)說明映射方式glTexEnvf();4)繪制場景,給出頂點的紋理坐標和幾何坐標glEnable(GL_TEXTURE_2D)和glTexCoord2f()。紋理映射只能在RGBA方式下執行,不能運用于顏色表方式。Clipmap機制
            針對Mipmap的一些缺點,提出了Clipmap方法。Clipmap方法首先對原始大紋理創建Mipmap,然后選擇一個分割尺寸,再把每一個Mipmap層分割成矩形網格狀的片,避免了傳統方法先把大紋理分割成小紋理再進行Mipmap過濾,而必須處理紋理邊界的做法。這種分割是在大紋理被指定在單一的坐標系統中,對MMipmap每一層進行的,與幾何無關。Clipmap的優點在于沒有把整個影像金字塔的紋理裝入內存,而是將裁剪中心周圍一定范圍內的紋理通過裁剪裝入內存。通過這種方法,分辨率最高的紋理只覆蓋了幾何模型的一小部分,而分辨率較低的紋理占了大部分。需要貼圖的部分只是Clip-mapping的一小部分。圖3-4的1)顯示出,Clipmap的優點在于沒有把整個影像金字塔的紋理裝入內存,而是將裁剪中心周圍一定范圍內的紋理通過裁剪裝入內存。通過這種方法,分辨率最高的紋理只覆蓋了幾何模型的一小部分,而分辨率較低的紋理占了大部分。圖3-4的2)顯示出,需要貼圖的部分只是Clip-mapping的一小部分。裁剪中心(ClipCenter)是一個任意的紋理坐標,在0層(最高分辨率層)指定一個裁剪中心,其它高層可由此導出,各層中心都沿一條線對中,從0層的中心直到Mipmap的頂點。在Mipmap的每一層,通過裁剪中心(ClipCenter)和裁剪尺寸(ClipSize)的定義就精確地選擇了要裁剪的區域,裁剪下來的這些固定大小的矩形區域叫裁剪區(Clipregion)。經裁剪后的Mipmap形成了ClipTexture。ClipTexture是繪制每一幀所需要的Mipmap的小子集,其存儲空間小可以克服硬件容量和帶寬的限制。ClipTexture的整個形狀象方尖塔形,它由兩部分構成,即ClipTexture棧和ClipTexture金字塔。凡是比裁剪尺寸大的Mipmap層就被裁剪,其裁剪下來的裁剪區組成ClipTexture棧,由于裁剪中心是隨視點移動而變化的,由此而生成的裁剪區也動態改變,那么ClipTexture棧數據也需要動態切換。ClipTexture金字塔是由Mipmap中小于等于裁剪尺寸的層組成,這些層不用裁剪,它正好是原始的Mipmap金字塔“塔尖”部分,這些層一次能整個容納在紋理內存中,其數據是靜態的,不隨視點移動而變化。    在Clipmap中關鍵問題在于確立裁剪中心ClipCenter點。在平坦的地形上最簡單的方法就是將觀察點投影到地形上,然后利用紋理坐標作為裁剪中心。這個方法的缺點在于clipmap包含了了觀察點后面的紋理,而且出了觀察視景體之外。如果把裁剪中心從觀察點向前挪一定的距離,那么就需要針對不同的分辨率選擇不同的裁剪中心。   雖然裁剪紋理算法處理大紋理產生了很好的效果,但是,就目前它的實現基礎來看還有以下限制:(l)它需要大容量的紋理存儲硬件;(2)裁剪紋理的有效實時操作需要一些特殊硬件的協助,如需要自動變換紋理映射的硬件,把紋理坐標從原始虛擬空間映射到這個經裁剪的紋理空間叭(3)裁剪紋理依賴于快速的硬盤訪問以取得紋理數據;(4)目前支持這項技術的高層系統軟件只有OpenGLPerformer,并且對操作系統要求苛刻,硬件上只有其專用圖形工作站才能支持。所有這些特點對于當前低端平臺和低帶寬環境是一種不足,其實現成本高、可移植性差限制了它的推廣應用。盡管如此,裁剪紋理的實現思想對于解決圖形學中相關問題有非常大的指導意義,這種方法不僅對顯示任意大范圍的紋理是重要的,同時還能減少幾何建模工作。裁剪紋理采用動態從大量數據上裁剪一小部分用于顯示,使用了一些緩存預測算法思想提高漫游的實時性和運用環形裝載模式進行數據重用等,這些方法對處理大量幾何數據的顯示也很重要,利用裁剪紋理的紋理數據顯示算法,整體的數據流可以被輕易地以應用需要按一定大小裁剪,開發這種顯示大場景幾何數據LOD信息的系統是可能的,同時從2D紋理擴展到3D紋理應用也可以借鑒這一做法。

            国产三级久久久精品麻豆三级| 久久精品国产清高在天天线| 国产精品一区二区久久| 青草久久久国产线免观| 久久不见久久见免费视频7| 伊色综合久久之综合久久| 国产一区二区精品久久岳| 国产69精品久久久久99| 日韩人妻无码精品久久久不卡| 久久99久国产麻精品66| 少妇久久久久久久久久| 婷婷伊人久久大香线蕉AV| 久久精品国产99久久久| 久久婷婷国产综合精品| 久久精品国产亚洲综合色| 久久久久久亚洲精品不卡| 久久久久国产精品麻豆AR影院| 久久亚洲AV无码西西人体| 亚洲日韩欧美一区久久久久我| 久久婷婷五月综合国产尤物app | 国产毛片久久久久久国产毛片 | 国产欧美久久一区二区| 夜夜亚洲天天久久| 精品综合久久久久久97超人 | 久久青青草原精品国产| 久久精品国产亚洲αv忘忧草 | 国产成人综合久久综合| 久久久久青草线蕉综合超碰| 国产精品亚洲美女久久久| 成人资源影音先锋久久资源网| 日韩精品久久久久久久电影蜜臀| 亚洲精品高清一二区久久| 亚洲国产精品成人AV无码久久综合影院| 久久久精品免费国产四虎| 久久亚洲精品视频| 国产精品亚洲美女久久久| 99久久人人爽亚洲精品美女| 99热都是精品久久久久久| 国产精品青草久久久久福利99| 品成人欧美大片久久国产欧美| 99久久国产免费福利|