Geschwindigkeit von cos () und sin () in GLSL-Shadern?
Ich interessiere mich für Informationen über die Geschwindigkeit vonsin()
undcos()
imÖffnen Sie die GL Shader Language.
DasGLSL-Spezifikationsdokument weist darauf hin, dass:
Die eingebauten Funktionen lassen sich grundsätzlich in drei Kategorien einteilen:
......Sie stellen eine Operation dar, die Grafikhardware wahrscheinlich irgendwann beschleunigt. Die Trigonometriefunktionen fallen in diese Kategorie.BEARBEITEN:
Wie bereits erwähnt, zählen Taktzyklen einzelner Operationen gernsin()
undcos()
erzählt nicht wirklich die ganze Performance-Geschichte.
Um meine Frage zu klären, interessiert mich, ob es sich lohnt, weg zu optimierensin()
undcos()
fordert gemeinsame Fälle.
In meiner Anwendung ist das Argument beispielsweise sehr häufig0
. Macht so etwas Sinn:
<code>float sina, cosa; if ( rotation == 0 ) { sina = 0; cosa = 1; } else { sina = sin( rotation ); cosa = cos( rotation ); } </code>
Oder wird dasGLSL
Compiler oder diesin()
undcos()
Implementierungen sorgen für solche Optimierungen für mich?