• <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>

            麒麟子

            ~~

            導(dǎo)航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統(tǒng)計(jì)

            常用鏈接

            留言簿(12)

            隨筆分類

            隨筆檔案

            Friends

            WebSites

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            ZBuffer與WBuffer

            Depth-Buffer(深度緩存)有兩種:Z-Buffer 和 W-Buffer,這里討論這兩種深度緩存的區(qū)別,以及如何在兩者之間轉(zhuǎn)換。
              w 的含義
              3D空間點(diǎn)的坐標(biāo)是(x,y,z),為了使矩陣乘法具有平移變換的功效,我們用4D空間中的點(diǎn)(x,y,z,w)來表示3D空間中的點(diǎn)(x',y',z'),這兩個(gè)不同空間點(diǎn)之間的關(guān)系是:
              
              x' = x / w
              y' = y / w
              z' = z / w
              
              像這樣用四維空間點(diǎn)表示三維空間點(diǎn),或者說用 n + 1 維空間點(diǎn)表示 n 維空間點(diǎn)的方法叫做 “齊次坐標(biāo)表示法”。
              
              實(shí)際使用中,在模型->世界轉(zhuǎn)換、世界->視圖轉(zhuǎn)換過程中,w 通常保持不變,總是等于一,這樣,齊次坐標(biāo)的前三個(gè)分量就是對(duì)應(yīng)3D空間點(diǎn)的三個(gè)坐標(biāo)分量。但是,經(jīng)過投影變換后,w 將得到一個(gè)比例值,比如,一般的透視投影變換矩陣是:
              
              | W  0  0  0 |
              | 0  H  0  0 |
              | 0  0  Q  1 |
              | 0  0 -QZn 0 |
              
              其中  Zn = 近裁剪面 z 坐標(biāo)
              Zf = 遠(yuǎn)裁剪面 z 坐標(biāo)
              W = 2 * Zn / 視口寬度
              H = 2 * Zn / 視口高度
              Q = Zf / (Zf - Zn)
              
              將點(diǎn)(x,y,z,1)乘以此矩陣,w 便不再是一,而對(duì)應(yīng)的3D空間點(diǎn)坐標(biāo)(x / w,y / w,z / w)將出現(xiàn)一個(gè)縮放效果。同時(shí),因?yàn)?w 的值通常與 z 坐標(biāo)成正比(比如經(jīng)過上面這個(gè)矩陣的變換,w 的值其實(shí)就是 z 坐標(biāo)的值),所以經(jīng)過投影變換,物體會(huì)產(chǎn)生近大遠(yuǎn)小的效果。
              
              Z-Buffer 與 W-Buffer 的區(qū)別
              簡(jiǎn)單的說,z-buffer 與 w-buffer 的區(qū)別就是前者保存的是點(diǎn)的 z 坐標(biāo),而后者保存的是點(diǎn)的 w 坐標(biāo)。
              
              具體的說,兩者因?yàn)楸4娴闹涤胁煌暮x,所以表現(xiàn)出來的實(shí)際效果也會(huì)有差別。
              
              z-buffer 保存的是經(jīng)過投影變換后的 z 坐標(biāo),前面說過,投影后物體會(huì)產(chǎn)生近大遠(yuǎn)小的效果,所以距離眼睛比較近的地方,z 坐標(biāo)的分辨率比較大,而遠(yuǎn)處的分辨率則比較小,換句話說,投影后的 z 坐標(biāo)在其值域上,對(duì)于離開眼睛的物理距離變化來說,不是線性變化的(即非均勻分布),這樣的一個(gè)好處是近處的物體得到了較高的深度分辨率,但是遠(yuǎn)處物體的深度判斷可能會(huì)出錯(cuò)。
              
              w-buffer 保存的是經(jīng)過投影變換后的 w 坐標(biāo),而 w 坐標(biāo)通常跟世界坐標(biāo)系中的 z 坐標(biāo)成正比,所以變換到投影空間中之后,其值依然是線性分布的,這樣無論遠(yuǎn)處還是近處的物體,都有相同的深度分辨率,這是它的優(yōu)點(diǎn),當(dāng)然,缺點(diǎn)就是不能用較高的深度分辨率來表現(xiàn)近處的物體。
              
              從硬件實(shí)現(xiàn)角度來說,幾乎所有的硬件3D加速卡都支持 z-buffer,而 w-buffer 的支持沒有 z-buffer 那么廣泛。另外,早期的 Direct3D 版本看起來也不支持 w-buffer。
              
              Z-Buffer 與 W-Buffer 之間的轉(zhuǎn)換
              根據(jù)上面的矩陣變換,可以很容易的導(dǎo)出將 w-buffer 轉(zhuǎn)換成 z-buffer 的公式:
              
              zDepth = Q * ( wDepth - Zn ) / wDepth
              = Zf / ( Zf - Zn ) * ( wDepth - Zn ) / wDepth
              
              這個(gè)轉(zhuǎn)換公式有什么用處?舉個(gè)例子:3DS MAX 使用的是 w-buffer,如果從 3DS MAX 中導(dǎo)出深度信息到 Direct3D 中,作為預(yù)渲染的背景使用,就有可能用到上面這個(gè)轉(zhuǎn)換。當(dāng)然,如果在 D3D 中使用 w-buffer,問題就不大了,但是如果使用 z-buffer,不經(jīng)過這樣的轉(zhuǎn)換,渲染結(jié)果就會(huì)出錯(cuò)。

            posted on 2009-04-24 17:49 麒麟子 閱讀(771) 評(píng)論(1)  編輯 收藏 引用 所屬分類: DirectX

            評(píng)論

            # re: 骨骼動(dòng)畫-------它終于動(dòng)起來了。 2009-04-29 22:31 張宏飛

            看看讓我留言否?  回復(fù)  更多評(píng)論   

            亚洲午夜无码AV毛片久久| 久久久无码一区二区三区| 国产成人久久精品一区二区三区| 精品国产99久久久久久麻豆| 欧美午夜精品久久久久免费视| 99久久久国产精品免费无卡顿| 精品精品国产自在久久高清 | 久久综合伊人77777麻豆| 久久丝袜精品中文字幕| 伊人久久大香线蕉综合Av | 久久最新精品国产| 久久亚洲电影| 国产V综合V亚洲欧美久久| 久久黄色视频| 丁香狠狠色婷婷久久综合| 日日狠狠久久偷偷色综合0| 粉嫩小泬无遮挡久久久久久| 亚洲欧美成人久久综合中文网| 国产成人综合久久综合| 久久婷婷五月综合色奶水99啪| 日本精品久久久久中文字幕| 色综合久久久久久久久五月| 久久精品18| 久久综合久久综合久久综合| 狠狠综合久久综合88亚洲| 国产精品免费久久久久久久久 | 国产精品gz久久久| 久久婷婷激情综合色综合俺也去| 欧美成a人片免费看久久| 91久久精品国产免费直播| 99精品久久精品一区二区| 久久夜色精品国产噜噜麻豆| 亚洲国产成人久久一区WWW| 国产巨作麻豆欧美亚洲综合久久| 国产精品久久久久影视不卡| 久久精品亚洲中文字幕无码麻豆| 精品久久久中文字幕人妻| 99久久香蕉国产线看观香| 久久综合色老色| 国产一区二区久久久| 麻豆av久久av盛宴av|