Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Zitat:
Die Position wird durch die Modelansichtsmatrix (zum Zeitpunkt des Aufrufs von glLight) transformiert, so als wäre glLight ein Punkt, und als Betrachterkoordinaten abgespeichert.
Ich brauche hier eine Bestätigung oder eine zusätzliche Erklärung. Ich habe es so verstanden:
z.B. in einer glInit Proc. habe ich so was geschrieben :
Die angegebene Position (2.0, 0.0, 15.0) wird genau wie ein Vertex gerendert, d.h. durch GL_PROJECTION und GL_MODELVIEW Matrices geändert.
Wenn ich das Licht jetzt aber immer im GL_PROJECTION_Mat. Coord. Space haben will muss ich eine InvertMatrix zu GL_MODELVIEW _Mat haben, und dann Licht durch folgende Transformation rendern :
GL_PROJECTION_mat
Inv_GL_MODELVIEW _mat
glLichtfv
// und jetzt kommt, dass was ich rendern will ?
Oder ist es ganz anders ?
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Beides. Mit 2 Lichtquellen. Eine Quelle bewegt sich mit der Kamera (ist im bezug auf die Kamera immer in einer gleichen Position), andere ist eben statisch, bewegt sich nicht. (wie ein Wand in einem Level)
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
ok, erstmal wir die Position nur mit der Modelview verrechnet. Die Lichtquelle die sich mit der Camera bewegt, muss vor die Initialisierung der Matrix, die andere danach:
Code:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glLightfv(GL_LIGHT0, GL_POSITION,@LightPosition[0]); //Das erste Licht bewegt sich mit der Camera
glTranslate...
glRotate...
glLightfv(GL_LIGHT1, GL_POSITION,@LightPosition[0]); //Das zweite Licht ist fest
beim zweiten Licht musst du darauf achten, dass die w-Komponente auch 1.0 ist, sonst drehts sich zwar, wird aber nicht verschoben (in Bezug auf die Camera)...
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.