Jump to content
  • Advertisement

Hattraz

Member
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

117 Neutral

About Hattraz

  • Rank
    Newbie

Personal Information

  • Industry Role
    Programmer
  • Interests
    Design
    Programming
  1. 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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!