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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage