2010-04-26 129 views
0

我只是想更好地瞭解directX管道。只是好奇,如果深度緩衝區是強制性的,才能使事情順利進行。或者,如果您希望對象相互出現,它只是您需要的緩衝區。是深度緩衝區強制性

回答

1

深度緩衝區不是必需的。例如,在2D遊戲中,通常不需要它。

如果您希望對象相互之後出現,但仍希望能夠以任意順序繪製它們,則需要深度緩衝區。

如果您從後面到前面繪製所有三角形,並且它們中沒有一個相交,那麼您可以不使用深度緩衝區。但是,通常更容易取消深度排序,而只是使用深度緩衝區。

+1

那麼,這是_faster_繪製前後。您不必對遮擋的像素運行着色器。 – Bahbar 2010-04-26 16:03:14

0

Depth buffers不是強制性的。他們只是解決了以下問題:假設您有一個物體靠近首先繪製的相機。然後,在繪製之後,您要繪製一個距離較遠的物體,但要在屏幕上顯示與附近物體相同的位置。沒有深度緩衝區,它會在頂部繪製,看起來不對。有了深度緩衝區,它就會變得模糊不清,因爲GPU會發現它已經繪製的其他東西。

你可以關閉它們並處理它,例如。 (通過深度緩衝解決了其他問題),這在2D遊戲中很容易。或者出於某種原因,您可能會希望這種過度抽籤作爲某種效果。但對於基本渲染而言,這絕非必要。