void CameraSetup(GLuint program, const Camera &camera) { static GLint viewProjectionLocation = glGetUniformLocation(program, "transform.viewProjection"); // расчитаем необходимые матрицы mat4 view = GLRotation(camera.rotation) * GLTranslation(-camera.position); /*mat4 view = mat4(-0.707107, -0.408248, -0.57735, 0, 0, 0.816497, -0.57735, 0, 0.707107, -0.408248, -0.57735, 0, 0, 0, -1.73205, 1 );*/ mat4 viewProjection = camera.projection * view; // передаем матрицы в шейдерную программу glUniformMatrix4fv(viewProjectionLocation, 1, GL_TRUE, viewProjection.m); }
math::Matrix4 Mesh::getModelMatrix(){ return GLTranslation(this->Position) * math::Matrix4(this->Rotation); }