Mauszeiger als Licht in OGL
-
Hi, ich würde gerne in OGL beim Mauszeiger eine Lichtquelle haben! (Also in jedem Frame die Position eines Lichtes zum Mauszeiger hin zu ändern)
Ich habe jetzt folgenden Code:
POINT mPos; GetCursorPos(&mPos); double x, y, z; double mView[16]; glGetDoublev(GL_MODELVIEW_MATRIX, mView); double pMatrix[16]; glGetDoublev(GL_PROJECTION_MATRIX, pMatrix); int viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); gluUnProject(mPos.x, viewport[3]-mPos.y, 0.0f, mView, pMatrix, viewport, &x, &y, &z); float lightPosition2[3]={x, y, z}; glLightfv(GL_LIGHT1, GL_POSITION, lightPosition2);
jedoch klappt der nicht so wirklich... kan vielleicht jemands helfen?
ARGH, shit, falsches forum, bitte verschieben!!!
[ Dieser Beitrag wurde am 19.06.2003 um 21:20 Uhr von DasPinsch editiert. ]
-
ich hab genau das gleiche problem!
hab so ziemlich den gleichen code..
wie in meinem thread beschrieben, sind nach dem gluUnProject() aufruf die variablen x, y und z mit 'nan' gefüllt..
nur wenn die mauskoordinaten direkt am rand des fensters sind (also ungefähr gleich 0 oder gleich MaxX und MaxY)
stehen da irgendwelche zahlen drin, aber nicht die richtigen..wenn du das problem mittlerweile gelöst hast, sag mal bitte wie..
-
Hmm, nein, habs noch nicht gelöst... was mir aber aufgefallen ist, ist, dass die zu beleuchtenden teile eh falsch beleuchtet wurden, und es daher theoretisch sein *könnte* dass der obige code stimmt
-
also, bei mir läufts jetzt..
hatte glGetFloatv(..) benutzt, um die matrizen zu bekommen und später gecastet..
mit glGetDoublev() hab ich keine probleme mehr..jetzt sieht mein code tatsächlich so aus wie deiner.. also daran wirds, denk ich, nicht liegen..
-
Original erstellt von LucKsuS:
**also, bei mir läufts jetzt..
hatte glGetFloatv(..) benutzt, um die matrizen zu bekommen und später gecastet..
**ja sauber, geht bei mir jetzt auch, hatte vergessen bei dem objekt die normals anzugeben