2016-08-04 23 views
0

Macht die Verwendung von textureOffset(...) Leistung im Vergleich zur manuellen Berechnung von Offsets und Verwendung der normalen texture(...) Funktion?Textur (...) über Texturoffset (...) Leistung in Glsl

Da es eine GL_MAX_PROGRAM_TEXEL_OFFSET-Eigenschaft gibt, würde ich vermuten, dass es Offseted-Texel in einem einzigen oder zumindest so wenig wie möglichen Abrufen abholen kann, was beispielsweise Verwischungseffekte hervorruft, aber ich kann nicht herausfinden, wie es geht funktioniert überall intern?

Update: Neuformulierung Frage: Ist es unter gl-Treiber gemeinsam holt alle Optimierungen in Bezug auf Textur zu machen, wenn die textureOffset Verwendung (...) Funktion?

Antwort

1

Sie stellen die falsche Frage. Die Frage sollte nicht sein, ob die spezifischere Funktion immer eine bessere Leistung hat. Die Frage ist, ob die spezifischere Funktion jemals langsamer sein wird.

Und es gibt keinen Grund zu erwarten, dass es langsamer ist. Wenn die Hardware keine spezielle Funktionalität für Offset-Textur-Zugriffe hat, dann wird der Compiler die Texturkoordinate nur manuell versetzen, genau wie Sie es könnten. Wenn Hardware zur Verfügung steht, wird sie verwendet.

So, wenn Sie brauchen, s und können innerhalb seiner Grenzen leben, gibt es keinen Grund nicht zu verwenden.

Ich würde vermuten, dass es offseted Texeln in einem einzigen oder zumindest so wenig wie möglich holen kann, holt die es hervorragend zum Beispiel Unschärfe-Effekte

Nein, das ist textureGather. textureOffset ist genau das, was der Name sagt: Zugriff auf eine Textur basierend auf einer Texturkoordinate mit einem Texel-Offset von der Position dieser Koordinate.

textueGather Proben von mehreren benachbarten Texel auf einmal. Wenn Sie einen Abschnitt einer Textur lesen müssen, um Verwacklung zu erzeugen, werden textureGather (und textureGatherOffset) nützlicher sein als .

+0

Danke, ich aktualisierte die Frage, ich bin mir bewusst von textureGather, was ich wissen wollte, ist, ob es irgendwelche Treiber gibt, oder sogar üblich, die TexturOffset zum Holen mehrerer Texel in hinter verwenden können. –