Меня интересует информация о скорости sin()
и cos()
в Open GL Shader Язык .
Спецификация GLSL указывает, что:
Встроенные -функции в основном делятся на три категории:
- ...
- ...
- Они представляют собой график операций. аппаратное обеспечение, вероятно, ускорится в какой-то момент. Тригонометрические функции попадают в это категория.
РЕДАКТИРОВАТЬ:
Как уже отмечалось, подсчет тактов отдельных операций, таких как sin()
и cos()
, на самом деле не дает полной картины производительности.
Итак, чтобы прояснить мой вопрос, что меня действительно интересует, так это стоит ли оптимизировать вызовы sin()
и cos()
для общих случаев.
Например, в моем приложении очень часто используется аргумент 0
. Так имеет ли что-то подобное смысл:
float sina, cosa;
if ( rotation == 0 )
{
sina = 0;
cosa = 1;
}
else
{
sina = sin( rotation );
cosa = cos( rotation );
}
Или компилятор GLSL
или реализации sin()
и cos()
позаботятся о такой оптимизации за меня?