2016-08-04 131 views
0

與使用常規texture(...)函數計算偏移量相比,是否利用textureOffset(...)提高了性能?由於GL_MAX_PROGRAM_TEXEL_OFFSET屬性有一個GL_MAX_PROGRAM_TEXEL_OFFSET屬性,所以我猜測它可以在單個或至少儘可能少的地方獲取偏移紋理元素,使其具有極好的模糊效果,但我似乎無法找到它在內部工作嗎?紋理(...)通過textureoffset(...)在glsl中的性能

更新: 再形成問題:是GL-司機之間的共同作出關於紋理利用textureOffset(...)功能時,取指任何優化?

回答

1

你在問錯誤的問題。這個問題不應該是更具體的功能是否總會有更好的表現。問題是更具體的功能是否會更慢

而且沒有理由期待它變慢。如果硬件沒有用於偏移紋理訪問的專門功能,那麼編譯器就會像您一樣手動偏移紋理座標。如果有硬件可以幫助,那麼它會使用它。

所以,如果你有需要textureOffset s,並可以在其限制內生存,沒有理由不是來使用它。

我猜想,它可以在單個取offseted紋元,或至少儘可能的少,取指使其精湛例如模糊效果

不,那是textureGathertextureOffset是爲了完成名稱所說的事情:根據紋理座標訪問紋理,並從該座標的位置偏移texel。

textueGather來自多個相鄰紋素的樣本全部一次。如果您需要閱讀紋理的一部分以進行模糊處理,則textureGather(和textureGatherOffset)將比textureOffset更有用。

+0

謝謝,我更新了這個問題,我知道textureGather,我想知道的是,如果有任何驅動程序,甚至可以使用textureOffset來獲取後面的多個紋理元素。 –