Cześć, mam obiekt w przestrzeni 3D, i chciałbym obliczyć kierunki wektorów (przód, prawo, góra) na podstawie jego rotacji (x, y, z). W przykładzie (znalazłem w sieci) jest obliczany kierunek przedni obiektu w GetFrontNormal() i działa, ale bez uwzględniania wartości z rotacji. A dwa pozostałe wektory są obliczane za pomocą iloczynu wektorowego pozostałych, a nie za pomocą rotacji. Niestety próbuję obliczyć to jakoś sam ale ciężko... . Będę wdzięczny za wytłumaczenie albo jakieś linki. Ogólnie potrzebuję to do obliczenia macierzy widoku do kamery w grze, a i chciałbym to zrozumieć. Pozdrawiam.
glm::vec3 GameObject::GetFrontNormal()
{
glm::vec3 front;
front.x = cos(glm::radians(rot.y)) * cos(glm::radians(rot.x));
front.y = sin(glm::radians(rot.x));
front.z = sin(glm::radians(rot.y)) * cos(glm::radians(rot.x));
return glm::normalize(front);
}
glm::vec3 GameObject::GetRightNormal()
{
return glm::normalize(glm::cross(GetFrontNormal(), World::WORLD_UP));//WORLD_UP=(0,1,0)
}
glm::vec3 GameObject::GetUpNormal()
{
return glm::normalize(glm::cross(GetRightNormal(), GetFrontNormal()));
}