picking die 2.
-
Hi! Ich scheitere gerade an einer Picking funktion und vermute, dass der Fehler in der Berechnung des "Kamera durch Maus" Vektors liegt. Ich habe den Code aus der FAQ:
// First Get The Cursor Position POINT mousePos; GetCursorPos(&mousePos); // Get The View Matrix float viewMatrix[16]; glGetFloatv(GL_MODELVIEW_MATRIX, viewMatrix); // Now Calculate The Vector From The Camera To The Mouse And Norm It Vector3 camToMouse; camToMouse.x=(((2.0f*mousePos.x)/width)-1.0f)/viewMatrix[0]; camToMouse.y=(((2.0f*mousePos.y)/height)-1.0f)/viewMatrix[5]; camToMouse.z=1.0f; normalize(&camToMouse); lineEnd=addVectors(multScalarVector(camToMouse, 40.0f), camera.getvPos());
Imho sollte dieser Code den Endpunkt eines 40Units langem Strahl berechnen, der von der Camera "durch" den Mauszeiger geht, jedoch klappt das nicht. Wie bereits gesagt, habe ich keinen Plan wie die x und y koordinaten des Vektors berechnet werden, ich habe den Code einfach aus der FAQ übernommen (Headhunter hatte auch keine Ahnung :p ). Wie ihr bestimmt schon bemerkt habt, benutze ich OGL!
MfG DasPinsch
[ Dieser Beitrag wurde am 14.02.2003 um 14:01 Uhr von DasPinsch editiert. ]
-
ersetze mal bei camToMouse.z=1.0f; die 1.0f durch ne -1.0f
-
Hi! Danke, habe ich schob probiert, nützt aber nix
Kann denn einer erklären, was da überhaupt gemacht wird? Und brauch ich relativische oder absoulute Mauskoordinaten? Ich vermute mal ganz stark abs., oder?MfG DasPinsch