Kameraposition und Licht(er)
-
Hä, also ich kapier nicht worauf Du hinauswillst.
Wenn Du die Kamera bewegst (gluLookAt), dann sieht es schon so aus, als ob Du Dich im Raum bewegst. Dazu gehört ja auch, dass sich die Lichtquelle relativ zu Deiner Kameraposition bewegt, genau wie alle anderen Objekte..
-
DEvent schrieb:
ich hab zwar keine ahnung von glide
nunja, ich denke das ist heutzutage nicht ganz so schlimm
-
@durito nein du hast mich da falsch verstanden fix heist das die Lichtquelle sich eben nicht bewegt!!! Und daher schaut es so aus als ob sich NUR der Ikosaeder bewegt!
-
Hm, also wenn Du nur gluLookAt veränderst, dann bewegt sich tatsächlich nur die Kamera. Was wiederum bedeutet, dass sich relativ zur Kamera alle Objekte (inkl. Licht) bewegen, das kann gar nicht anders sein
-
Hier ist mein kleiner Quällcode
int DrawGLScene(GLvoid) { int b; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); gluLookAt(0.0f+Winkely, 0.0f, 10.0f+Winkelx, 0.0f+Winkely, 0.0f, 0.0f+Winkelx, 0, 1, 0); glRotatef(Winkelz,0.0f,0.0f,1.0f); for(b = 0; b < 5; b++) { glBindTexture(GL_TEXTURE_2D, texture[b]); glBegin(GL_TRIANGLES); glNormal3f( Normalen[b].x, Normalen[b].y, Normalen[b].z); glTexCoord2f(0.5f, 1.0f); glVertex3f(Wuerfel[0][0].x, Wuerfel[0][0].y, Wuerfel[0][0].z); glTexCoord2f(0.0f, 0.0f); glVertex3f(Wuerfel[1][b].x, Wuerfel[1][b].y, Wuerfel[1][b].z); glTexCoord2f(1.0f, 0.0f); glVertex3f(Wuerfel[1][(b+1)%5].x, Wuerfel[1][(b+1)%5].y, Wuerfel[1][(b+1)%5].z); glEnd(); }
Und so schaut es wirklich so aus als ob sich nur der Ikosaeder bewegt. Also die hellen und die dunklen Flächen ändern sich, wie wenn sich der Ikosaeder bewegt und die Lichtquelle fest währe.
de Gortosch
-
Sgt. Nukem schrieb:
DEvent schrieb:
ich hab zwar keine ahnung von glide
GLIDE????
? eben OGL
-
Warum machste das glRotate?
Du willst doch nur die camera bewegen (mit gluLookAt)...
-
@durito: Schonmal geguckt wie gluLookAt intern arbeitet? Ne? Dann mal lieber machen
cya
liquid
-
...also leute ihr meint das glLookAt() alles bewegt und ich einen fehler bzw. einen Knick in der Optik habe... hmmm... oder... naja welche Methoden benutzt ihr um euch im Raum zu bewegen? Ich meine es gibt doch bestimmt noch andere Möglichkeiten...
-
@LiquidAcid: Hm, warum? Natürlich auch mit Matrizenmultiplikationen, aber was hat das mit dem glRotate in gortosch's Quellcode zu tun?
@gortosch: Benutz für sowas gluLookAt, das ist am einfachsten. Könntest das was gluLookAt macht natürlich auch von Hand machen, aber warum auch..
Aber eben, warum hast Du da noch ein glRotate drin?
-
früher konnte man den Ikosaeder um die x y und z achse drehen... is nur für die Drehung des Ikosaeders... mit glLookAt() hat es nix zu tun...