[OpenGL] Picking und Rotation / Skalierung
-
hi!
ich habe mal wieder ein paar probleme! ich arbeite mit picking und das funktioniert auch alles ganz gut, jedoch nur, wenn ich das objekt nicht rotiere, verschiebe und/oder skaliere! worauf muss ich achten? meine picking funktion sieht im moment so aus (arbeite mit dem c++ builder):
if(Button != 0&& Button != 2 && Shift.Contains(ssShift)) { GLint viewport[4]; glGetIntegerv(GL_VIEWPORT, viewport); glSelectBuffer(BUFSIZE, selectionBuffer); glRenderMode(GL_SELECT); glInitNames(); glPushName(0); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); gluPickMatrix((GLdouble) X, (GLdouble) (viewport[3] - Y), 1.0f, 1.0f, viewport); glOrtho(-GetOrtho*sx, GetOrtho*sx, -GetOrtho*sy, GetOrtho*sy, -10000, 10000); DrawScene(true); //hier wird das objekt 'dargestellt' glMatrixMode (GL_MODELVIEW); glPopMatrix(); glFlush(); numOfHits = glRenderMode(GL_RENDER); collisionbool = true; MyResize(); /* MatrixMode, Viewport einlesen, Objectfunktion aufrufen*/ Manipulate(); /*Objekt manipuilieren (skalieren, rotiere, verschieben) */ }
enddeckt jemand einen fehler?
danke für die hilfe
mr. blubbermann