Скорость функций cos ()и sin ()в шейдерах GLSL?

Меня интересует информация о скорости 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()позаботятся о такой оптимизации за меня?

17
задан ulmangt 14 April 2012 в 19:16
поделиться