2009-11-16 78 views
3

你能解釋一下,爲什麼硬件加速需要很長一段時間的紋理是兩次方?對於個人電腦,自從GeForce 6以來,我們實現了npot紋理,沒有mips和簡化的過濾。 OpenGL ES 2.0還支持npot紋理,而不使用mipmap等等。對此有什麼硬件限制?只是簡化算術?兩種紋理的功率

回答

3

我想它與能夠使用逐位左移操作有關,而不是乘法將(x,y)座標轉換爲從紋理開始處的存儲器偏移量。所以是的,從處理器的角度來看,簡化算法。

+0

但硬件可能有與紋理關聯的附加緩衝區:指向行的指針數組。訪問將像兩個解除引用一樣快。這些所有建議都來自傳統的CPU角度。這可能不適用於GPU。例如,x86的分支非常輕便,但GPU非常慢!換句話說,我想說紋理尋址可能與CPU尋址不同。例如,我聽說GPU通過塊緩存(對於前32x32像素),而不是像CPU那樣行。最後,我認爲兩個derefs是相當快的。 – demi 2009-11-16 09:12:18

+0

兩個derefs需要一個deref長達兩倍的長度,所以這需要兩倍的時間... – 2009-11-17 00:31:00

1

我猜測這是爲了讓mipmap生成更容易,因爲它允許您將2x2像素從NxN一直平均到1x像素,直到1x1。

現在如果你不使用mipmapping並不重要,但只有一條規則會更容易,我認爲mipmapping是更常見的用例。