Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 04:30

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Feste Kameraposition ändern
BeitragVerfasst: Do Apr 13, 2006 09:31 
Offline
DGL Member

Registriert: Do Apr 13, 2006 09:02
Beiträge: 3
Hi,

ich bin neu und habe eigentlich ein ziemlich einfaches Problem:
Ich habe ein Objekt mit Textur (welches auch rotiert) schon erstellt und möchte nun die Kamera so setzten, dass die Kamera die Koordinaten des Objekts hat und mitdreht. (also quasi dann die Umwelt anguckt).
Wie ist das zurealisieren?
Ich habe mir die Tutorials dazu zwar schon angesehen, aber richtig durchgestiegen bin ich nicht, zumal da ja auch gleich Joystick etc. dabei ist, was ich nicht brauche.

Danke vorraus

MFG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 13, 2006 09:58 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
hi,

wenn du dich in das objekt bewegst (oder viel eher das objekt zu dir bewegst), dann siehst du es ja nicht mehr.
also kannst du dir als erstes das zeichnen dieses objekts sparen.
außerdem beziehen sich jegliche änderungen der matrix immer auf sichtbare, dh gerenderte texel. das heißt im klartext, das du
niemals dich selbst bewegst oder rotierst, sondern immer die restliche welt bewegen und rotieren musst. du musst also deine
rotation direkt an den anfang deiner renderprozedur stellen:

Code:
  1.  
  2. begin
  3.   angle := angle + DeltaTime;  // DeltaTime ist die Zeit seit der letzten durchgang. alternativ auch erstmal +1 o.ä.
  4.   glLoadIdentity();
  5.   glRotatef(angle, norm.x, norm.y, norm.z);  // je nach dem wohin du rotieren willst
  6.  
  7.   ...    // Szene rendern
  8. end;



gruß

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 13, 2006 10:02 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Eine wirklich komplexe Kamera gibts im Wiki: siehe Kamera

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 13, 2006 10:29 
Offline
DGL Member

Registriert: Do Apr 13, 2006 09:02
Beiträge: 3
ja eben, die komplexe brauch ich ja nicht, die ist mir zu komplex, das hab ich mir schon angeschaut (und nicht wirklich kapiert).

Bei dem Programm gehts mir um die schleife bewegung des mars von der erde aus betrachtet. Zu deutsch ich hab nen Planeten Erde und einen Planeten Mars. Diese rotieren um einen festen Punkt wo bei die Erde den Mars dann immer überholt. Jetzt will ich also meine Betrachtungssicht so ändern, dass ich auf der Erde stehe und mich mit ihr drehe (um von da eben den Mars zu beobachten). Und dafür müsste ich irgendwie die Betrachtungändern. Möglichst eben mit Tastendruck (wie das geht weiß ich). ICh hab eben nur keine Ahnung wie ich auf die Erde komme.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 13, 2006 11:40 
Offline
DGL Member
Benutzeravatar

Registriert: So Okt 26, 2003 20:07
Beiträge: 249
jaja, das übliche spiel mit der matrix.

habs nicht getestet, aber probiers mal so:

Code:
  1.  
  2. glLoadIdentity();
  3.  
  4. glTranslatef(0, Erde.Radius, 0);
  5. Erde.Draw;
  6.  
  7. glRotatef(Erde.EigenRot, 0, 1, 0);
  8. glTranslatef(Erde.Pos.X, Erde.Pos.Y, Erde.Pos.Z);
  9. glRotatef(Erde.ZentRot, 0, 1, 0); // je nach dem wie du ausgerichtet bist kann sich das 0, 1, 0 ändern
  10.  
  11. Sonne.Draw // wenn gewünscht
  12.  
  13. glRotatef(Mars.ZentRot, 0, 1, 0);
  14. glTranslatef(Mars.Pos.X, Mars.Pos.Y, Mars.Pos.Z);
  15. glRotatef(Mars.EigenRot, 0, 1, 0);
  16. Mars.Draw
  17.  


erfordert etwas vorstellungsvermögen um es nachzuvollziehn - musste selbst lange drüber nachdenken ^^

gruß

_________________
I'm not the signature, I'm just cleaning the floor...

Derzeitiges Projekt:
FireBlade Particle Engine (Release R2 2009.06.29)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 13, 2006 12:20 
Offline
DGL Member

Registriert: Do Apr 13, 2006 09:02
Beiträge: 3
thx, ich probiers gleich mal aus!

edit: hm, das haut so irgendwie nicht hin.
also ich gucke von der Erde sehe den Mars der rotiert . Soweit funktioniert das alles.
Aber keine Schleife des Mars
aber ich glaube, dass ist auch gar nicht mal so einfach. Weil ich glaube diese Schleife die der Mars macht, ist nen Phänomen aus 3 Bewegungen: Erdrotation, Eigenrotation der Erde und Marsrotation. Irgendwann überholt die Erde den Mars und dann macht der von der Erde aus betrachtet ne Schleife, die er so gar nicht macht.
Wenn wir das aus sicht der Erde machen, müssen wir das quasi als "geozentrisch" programmieren. Wenn ich mir das jetzt so vorstelle kommt es da aber zu keiner Schleife, da unser Blickfeld statisch ist. es müsste irgendwie "mitrotieren". Aber ich glaube dann brauch ich wohl doch die Joystickcam.

Kann sein das ich jetzt irgendwie Müll gepostet habe, hab lediglich meine Gedanken zusammenhangslos aufgeschrieben, vielleicht findet jemand da nen Denkfehler

http://de.wikipedia.org/wiki/Planetenschleife



edit2:

Ich hab ne Lösung gefunden und zwar diese hier:
http://de.wikipedia.org/wiki/Epizykeltheorie

damit funzt das mit deinem Quelltext, wenn man ihn um eine Rotation (Epizykel) erweitert


danke vielmals


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]