CAMERA *g*
-
Hi,
in den Codeworx Tutorial, wird meiner Meinung nach (nicht Wert) die Kamera auf eine bekloppte Weise "verschoben".
Die lassen da die "Welt" per sinus und etc. so bewegen das es aussieht, als würde sich die Kamera bewegen. Das ist doch scheise.
Das kann's ja wohl nicht sein.
Wie macht ihr das???
Es muss doch gehen die Camera WIRKLICH zu verschieben, oder?mfg DKing
CYA
-
Du kannst statt glTranslate und glRotate auch gluLookAt nehmen. Die ersten drei Parameter bezeichnen den Positionsvektor, die nächsten drei den Viewvektor und die letzten drei den Up Vector.
Kannst ja mal auf http://www.gametutorials.com/Tutorials/OpenGL/OpenGL_Pg1.htm schauen, da gibt es mehrere Beispiele für ne Kameraklasse(auch wenn ich die selbst nicht wirklich als gut empfinde).
-
thx,
aber du hast recht, das ist echt übel.
Aber eins ist Komisch setzt ich
gluLookAt(0,0,0,0,0,0,0,0,0);
vor dem Zeichen des 3D Modells ein eist das Bild schwarz.
Setzt ich es danach sieht man alles wieder normal.
Warum, ich hab es noch nicht hingekriegt die Kamera um 1 zu bewegen.
Kann jemand ein BSP geben, plsmfg DKing
cya
-
Versuchs doch mal mit gluLookAt(0,0,0, 0,0,1, 0, 1, 0);
-
Gott der 2. schrieb:
Die lassen da die "Welt" per sinus und etc. so bewegen das es aussieht, als würde sich die Kamera bewegen.
es gibt keine kamera und egal wie, das ergebnis ist eine entsprechend "präparierte" modelview matrix. aber stimmt, das sinus gedöns (das dann wohl mal wieder nur 3 winkel speichert und sowieso höchstens für egoshooter taugt) ist nicht der bringer.
Aber eins ist Komisch setzt ich
gluLookAt(0,0,0,0,0,0,0,0,0);
vor dem Zeichen des 3D Modells ein eist das Bild schwarz.ach was? ehrlich? der kann nicht auf hellseherische weise aus einer ladung nullen sinnvolle vektoren zaubern? auf den gleichen punkt schauen zu wollen, an dem man sich befindet ist schonmal sinnlos (und sorgt höchstens für böse verdrehte augen bei dem versuch ohne spiegel rein zu schauen). der oben vektor sollte nach möglichkeit halt auch was sinnvolles sein.
Setzt ich es danach sieht man alles wieder normal.
setzt man es erst NACH dem zeichnen, dann ist das ähnlich sinnfrei, denn nach dem zeichnen ändert es auch naheliegenderweise nichts mehr.
erwähnen wir lieber nicht, daß glulookat die modelview matrix letztlich genau so setzt, wie man sie mit translate und rotate auch bekommen hätte. es gibt exakt null unterschied zwischen dem "bewegen" der welt und dem "bewegen" einer imaginären kamera.
-
ich finde diese Lösung aber ordentlicher
so, ich habs jetzt hingekriegt das ganze zu zeichnen:
gluLookAt(0,0,0, 0,0,-1, 0, 1, 0);
nur dummer weise ist dann alles verdreht (liegt an der letzten 1).
Mach ich dort ne null hin ist alles wieder schwarz???
Wie kriege ich das Problem weg?
-
Überleg doch einfach mal was ich oben geschrieben habe, was jeder einzelne "Dreier" bedeutet und dann überlege dir mal, wie du das ganze umsetzt. Ist eigentlich ganz einfach! Aber bevor du irgendwelche Rotationen hinbekommst, musste erst den ViewVektor neu berechnen. Ebenso ist es, wenn du die Position veränderst.
-
Gott der 2. schrieb:
Mach ich dort ne null hin ist alles wieder schwarz???
Wie kriege ich das Problem weg?sehen, verstehen. und wer jetzt mit "aber das ist doch directx" kommt, der bekommt eins hinter die ohren.
-
Trienco schrieb:
sehen, verstehen. und wer jetzt mit "aber das ist doch directx" kommt, der bekommt eins hinter die ohren.
...UND MORGEN WIEDER TEUER!!!
-
funzt alles 100% thx at all
mfg
cya
-
Habt ihr auch noch die drei Pfeile am absoluten Nullpunkt des Universums beachtet? (Gruß an David!)
Bye, TGGC (Dem beste BdT)