double VecScalarProizv(float *vec1, float *vec2)
{
double rc;
rc = sqrt((vec2[0]-vec1[0])*(vec2[0]-vec1[0]) +
(vec2[1]-vec1[1])*(vec2[1]-vec1[1]) +
(vec2[2]-vec1[2])*(vec2[2]-vec1[2]));
return rc;
}
Положение точки относительно полигона (BSP)
Я это делаю функцией:
if (VecScalarProizv(root->nodeface.normal, eye) < root->parametr_D)
т.е. если результат < 0 то точка лежит в отрицательном пространстве полигона.
Вот функция скалярного произведения векторов:
Код:
Проблема в том, что эта функция тормозит нипадецки. Было 70фпс, стало 30-35.
Помогите пожалуйста, кто знает более быстрые способы определения положения камеры относительно полигона!
Спасибо за внимание.