Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

117 Neutral

About Hattraz

  • Rank

Personal Information

  • Role
  • Interests
  1. Hattraz

    Screen Coords to World Coords

    It looks like normalization was part of the problem, and the adjustment to the 4th component of the screenPos helped save me some time from troubleshooting more.   Thank you! =)
  2. I am trying to convert screen coords to world cords so that I can move an object with the mouse cursor in C++ using glew and glfw. I've been following an article on raycasting, which gets me part of the way.   In my program, I am able to move the object but it either moves too far or too little.     The code I have right now is:   Projection/View Declaration ... GlobalProjection = glm::perspective(1.0f, 4.0f / 3.0f, 1.0f, 1024.1f); GlobalView = glm::lookAt( glm::vec3(0, 0, 1024.0f), // Camera location glm::vec3(0, 0, 0), // Where camera is looking glm::vec3(0, 1, 0) // Camera head is facing up ); ... Transform Function glm::vec3 Application::viewToWorldCoordTransform(int mouse_x, int mouse_y) { double x = 2.0 * mouse_x / 1024 - 1; double y = 2.0 * mouse_y / 768 - 1; glm::mat4 ProjectView = GlobalProjection * GlobalView; glm::mat4 viewProjectionInverse = inverse(ProjectView); glm::vec4 screenPos = glm::vec4(x, -y, -1.0f, -1.0f); glm::vec4 worldPos = viewProjectionInverse * screenPos; return glm::normalize(glm::vec3(worldPos)); } I have a loose understanding of how this all works, and I get lost when inverse is used.   If there's any existing code out there that I can get referred to or if someone can point out where I'm going awry I would appreciate it.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!