Я пытаюсь реализовать редактор, такой как размещение мода с помощью opengl.Когда вы щелкаете где-то на экране, объект помещается в эту позицию.
Пока это мой код
void RayCastMouse(double posx, double posy)
{
glm::fvec2 NDCCoords = glm::fvec2( (2.0*posx)/ float(SCR_WIDTH)-1.f, ((-2.0*posy) / float(SCR_HEIGHT)+1.f) );
glm::mat4 viewProjectionInverse = glm::inverse(projection * camera.GetViewMatrix());
glm::vec4 worldSpacePosition(NDCCoords.x, NDCCoords.y, 0.0f, 1.0f);
glm::vec4 worldRay = viewProjectionInverse*worldSpacePosition;
printf("X=%f / y=%f / z=%f\n", worldRay.x, worldRay.y, worldRay.z);
m_Boxes.emplace_back(worldRay.x, 0, worldRay.z);
}
Проблема в том, что объект не расположен в правильном положении,worldRay vec3 используется для перевода матрицы модели.
Может кто-нибудь, пожалуйста, помогите с этим, я буду очень признателен.Кстати, деление компонента worldRay xyz на worldRay.w устанавливает объект в положение камеры.