Skalli

03-10-2013, 01:39 PM

Hi everyone,

I'm having a little trouble again.

Currently I want to find the bounds of my window in world coordinates. I know that unprojection can be useful for that, but I'm doing it wrong and can't find my mistake.

I'm trying to get the right end of my window this way:

viewMatrix = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -5.f)); //View matrix is translated 5 units back.

projectionMatrix = glm::perspective(60.0f, 640.f / 480.f, 0.1f, 100.f); //FOV is 60, window aspect is 640/480, near plane 0.1 and far plane is 100.

glm::vec3 position(639.f, 479.f, 0.f);

glm::vec3 v = glm::unProject(position, viewMatrix, projectionMatrix, glm::vec4(0, 0, 640.f, 480.f));

The goal is that v.x contains the right bound of my window in world coordinates. This value should be around 4.

I don't know what value I can use for the z-value in position. If I use 1 then v.x is ~67. With z = 0 it is ~0.067.

Currently I'm not using the z-axis for any of my game objects. It's 2D but not orthogonal.

Is there a way to calculate z for position or any other way to get the window bounds in world coordinates?

I'm having a little trouble again.

Currently I want to find the bounds of my window in world coordinates. I know that unprojection can be useful for that, but I'm doing it wrong and can't find my mistake.

I'm trying to get the right end of my window this way:

viewMatrix = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, -5.f)); //View matrix is translated 5 units back.

projectionMatrix = glm::perspective(60.0f, 640.f / 480.f, 0.1f, 100.f); //FOV is 60, window aspect is 640/480, near plane 0.1 and far plane is 100.

glm::vec3 position(639.f, 479.f, 0.f);

glm::vec3 v = glm::unProject(position, viewMatrix, projectionMatrix, glm::vec4(0, 0, 640.f, 480.f));

The goal is that v.x contains the right bound of my window in world coordinates. This value should be around 4.

I don't know what value I can use for the z-value in position. If I use 1 then v.x is ~67. With z = 0 it is ~0.067.

Currently I'm not using the z-axis for any of my game objects. It's 2D but not orthogonal.

Is there a way to calculate z for position or any other way to get the window bounds in world coordinates?