Почему значение (матрица) не передается и как это исправить?
Пытаюсь исправить это уже 2ой день, по форумам и так далее лазил ничего что мне нужно не нашел, помогите пожалуйста
Если что я новичок
этот цикл в функции находиться (не в moveCamera)
while (!glfwWindowShouldClose(mWindow))
{
//first.setMatrix("ModelMatrix", ModelMatrix);
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glfwGetWindowSize(mWindow, &windowWidth, &windowHeight);//узнаем высоту и ширину окна каждый кадр
//ModelMatrix = glm::rotate(ModelMatrix, glm::radians(1.0f), glm::vec3(0.0f, 0.0f, 1.0f));//Z
//ModelMatrix = glm::translate(ModelMatrix, glm::vec3(0.00f, 0.0f, 0.0f));
Camera cam;
cam.moveCamera();
glUniformMatrix4fv(glGetUniformLocation(first.mProgram, "ModelMatrix"), 1 , GL_FALSE, glm::value_ptr(ModelMatrix));
glUniformMatrix4fv(glGetUniformLocation(first.mProgram, "ViewMatrix"), 1, GL_FALSE, glm::value_ptr( view));
glUniformMatrix4fv(glGetUniformLocation(first.mProgram, "projectionMatrix"), 1, GL_FALSE, glm::value_ptr(projectionMatrix));
vao.draw(GL_TRIANGLES);
glfwSwapBuffers(mWindow);
glfwPollEvents();
}
Вот эта функция которая должна вызываться затем обрабатывать саму матрицу и передавать ее в другую функцию которая описана выше (что она не делает)
glm::mat4 Camera::moveCamera()
{
GLfloat radius = 10.0f;
GLfloat camX = sin(glfwGetTime()) * radius;
GLfloat camZ = cos(glfwGetTime()) * radius;
view = glm::lookAt(glm::vec3(camX, 0.0, camZ), glm::vec3(0.0, 0.0, 0.0), glm::vec3(0.0, 1.0, 0.0));
return view;
}
Также если код это функции(moveCamera) переместить перед другой(которая передает матрицы в шейдер) то все работает