Re: [請益] 什麼是24位元 Z緩衝深度
※ 引述《Sheng1025 (努力活下去)》之銘言:
: 我的顯卡是 ASUS ATI 4670
: 在3D設定裡面有個選項是 強制 24位元 Z緩衝深度
: 請問這是用來做什麼的 玩遊戲開啟這選項
: 對畫面會有幫助嗎?
=====牆壁
人物B
箱子A
人物C ^^^
|||
----------螢幕虛擬平面
3D遊戲中,把你的螢幕畫出來的東西.當成在螢幕後面存在一個虛擬的世界.
這時候你看見的物體,相對於你的螢幕平面或者是"視角".都會有一個深
度的距離.
比如說,箱子距離你0.5M,人物距離0.8M,牆壁距離3M.
所以Z-buffer是儲存"每個Pixel",對應的現在被畫出來的物件
距離你的螢幕的距離......用途是決定接下來繪製其他pixel的時候,
就可以決定哪些pixel該被遮住,哪些該被重劃.
上面這個聽起來像是木星話嗎?
那麼這樣說明好了,假設人是躲在箱子後面偷看你,也就是說,人頭有部分
被箱子遮住.部分沒有.箱子所占用的pixel為A,人所占用的為B
AAAAAAAA
AAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA <--繪畫箱子
AAAAAAAAAA
AAAAAAAAAA
BBBBBBB
AAAAAAAABB
AAAAAAAAABB <--繪畫人
AAAAAAAAAABB
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
為何會知道畫人的時候,部分的pixel是被箱子遮住.必須避開不畫.
而剩下的部分要畫出來呢?就是以Z-buffer實作來解決這個問題.
假如說先畫箱子,那麼這些pixel對應的Z-buffer大小就是0.3M.
接下來要畫的物件和這個區域重疊的時候,如果新物件的Z的大小
大於0.3M,表示會被遮住,不用畫在螢幕上.如果Z的大小小於0.3M
表示重疊部分必須更新重畫.
如果接下來要畫的是更前面的人物C.那麼因為C的Z值都比現存的
Z-buffer的值小,所以知道重疊的pixel都一全部重劃,並且把
這些pixel的Z-buffer更新成更小的Z值.
那麼..Z-buffer設定成24bit有什麼意義呢?因為相較於原本的16-bit Z-buffer.
把數字變大,可以得到比較高的精確值以及表示範圍.
比如說,如果我把場景中的"最遠"定義成60公尺左右.那麼16-bit Z-buffer
的最小單位就會是差不多0.1cm...這看起來是很夠用了,就算我們把視角
轉回桌上的文具等等.也不用擔心繪圖因為精確度太差而出問題.
不過實際上並沒有這麼簡單.因為Z-buffer儲存的是Z值(聽起來像是火星話,
但是我不打算現在解釋).所以說,Z-buffer每差一個單位,在越遠的地方會差異越大.
換個方式解釋好了.你的螢幕上同樣的一個pixel,在看很近的東西的時候,
一個pixel所佔有的實際長度很短.但是視角切換到看遠處的時候,一個pixel
所佔有的實際長度/面積會大很多.
如果說我希望場景的深度最深達到1000公尺,在這個等級的時候.
我看最遠處(1公里)的東西,16-bit Z-buffer"不能"分辨出
小於30公尺內的物件的正確遮蔽關係.這表示物體的三角面會有
很多被計算錯誤.就會出現物體的邊緣不正常的被吃掉,或者是畫出
詭異的形狀等等.更嚴重的情況則是,有些物件只要移動一點點.
就會算出孑然不同的結果.那麼你就會看到這個物體一面變形一面移動.
或者是產生視覺上嚴重閃爍的問題.
如果Z-buffer提升到24-bit,那麼可分辨的下限
就大概是降為12.5cm左右...這表示可以降低非常多畫面遠處畫錯的問題.
Z-buffer提高精確度的好處就是以上那樣.
壞處?16-bit變成24-bit,略為提升記憶體佔用量.
當然就現在的顯示卡而言,解析度*24bit的記憶體用量
少的跟一根腳毛差不多.不過同時讀寫的頻寬也成正比增加.
在繪製3D圖案的時候,Z-buffer是不斷的讀取以及寫入的.
另外一個不用提高Z-buffer精確度的方法則是把Z-buffer改為以
W-buffer實作,Z-buffer儲存的為Z值而W buffer儲存的為W值
(怎麼又是火星話!!),W-buffer的好處就是經過換算,在極遠處
跟很近的地方的可辨別精確度相同.因此也不需要特意提高精確度,
可以繼續沿用16-bit的精確度就夠了.但是缺點就是W-buffer需要
額外換算,因此會佔用硬體的計算資源,或者是硬體實作上會比較複雜等等.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.117.195
推
11/22 19:16, , 1F
11/22 19:16, 1F
推
11/22 19:20, , 2F
11/22 19:20, 2F
推
11/22 19:26, , 3F
11/22 19:26, 3F
推
11/22 19:35, , 4F
11/22 19:35, 4F
推
11/22 19:35, , 5F
11/22 19:35, 5F
→
11/22 21:12, , 6F
11/22 21:12, 6F
推
11/22 21:32, , 7F
11/22 21:32, 7F
推
11/23 01:05, , 8F
11/23 01:05, 8F
推
11/23 10:26, , 9F
11/23 10:26, 9F
推
11/23 10:47, , 10F
11/23 10:47, 10F
推
11/23 11:35, , 11F
11/23 11:35, 11F
推
11/23 13:08, , 12F
11/23 13:08, 12F
推
11/23 14:51, , 13F
11/23 14:51, 13F
推
11/23 16:42, , 14F
11/23 16:42, 14F
推
11/23 16:47, , 15F
11/23 16:47, 15F
推
11/23 19:53, , 16F
11/23 19:53, 16F
推
11/24 01:34, , 17F
11/24 01:34, 17F
推
11/24 08:24, , 18F
11/24 08:24, 18F
VideoCard 近期熱門文章
PTT數位生活區 即時熱門文章