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

Aktuelle Zeit: Fr Jul 18, 2025 05:04

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Richtungsvektoren aus glRotate
BeitragVerfasst: So Sep 25, 2011 21:28 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
split from http://www.delphigl.com/forum/viewtopic.php?f=2&t=10076 by horazont

Okay, hilft tatsächlich :lol:

Ich hätte mal noch eine Frage und nutz dazu mal gleich diesen Thrad.
Die Sache ist die: gluLookAt mag ich nicht und mich mag es auch nicht, lol.
Ich nehme daher um mich zu bewegen 2mal glRoatef um mit der Maus hoch runter bzw. links rechts und dann glTranslatef für die allgemeine Bewegung.

Allerdings bereitet mir das Probleme bei bestimmten berechnungen.
Würde ich jetzt mit gluLookAt arbeiten hätte ich mathematisch gesehen einen Stützvektor und einen Richtungsvektor aber das fällt hier leider erstmal weg.

Wenn ich nun z.B. vor einen Haus stehe, hoch richtung Dach gucke und dort einen Punkt anfixiere, also er im Mittelpunkt des Window liegt, muss ich ja irgendwie diesen Punkt bestimmen können den ich gerade angucke nur wie mache ich das nun am besten? Hoffe das ist einigermaßen verständlich :oops:


Zuletzt geändert von AMD am Sa Okt 08, 2011 12:15, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Objekte "flackern"
BeitragVerfasst: So Sep 25, 2011 23:12 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
War nicht verständlich, aber ich werfe mal Sinus bzw. Cosinus in den Raum, die sollten helfen.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Objekte "flackern"
BeitragVerfasst: Mo Sep 26, 2011 07:23 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Das hat aber ABSOLUT GAR NICHTS mit Objekte "flackern" zutun...

Den Punkt den du "anvisierst" bei gluLookAt ist global, du musst also nicht weiter berechnen sondern einfach nur die Koordinaten ausgehend vom Ur-Ursprung (0, 0, 0) angeben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Objekte "flackern"
BeitragVerfasst: Mo Sep 26, 2011 10:19 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Das mit dem Objekte flackern war halt das Z-Fightung und wurde bereits geklärt und um nicht einen neuen Thread zu eröffnen habe ich gleich hier die Frage gestellt - sagte ich doch :roll:

Außerdem habe ich gesagt, dass ich kein gluLookAt benutze also hilft mir das nicht weiter! Vielleicht erstmal vorher genau lesen...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Objekte "flackern"
BeitragVerfasst: Mo Sep 26, 2011 10:33 
Offline
DGL Member

Registriert: Sa Okt 18, 2008 11:59
Beiträge: 180
Mir ist klar das das ursprüngliche Problem gelöst ist, dennoch solltest du einen neuen Thread erstellen.

NEIN, du schonst durch recyclen von Threads NICHT die Umwelt, du sparst auch kein Geld.


Für dein neues Problem kann ich nur i0n0s zitieren, da dein Problem (wie ich finde) unverständlich formuliert wurde.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Objekte "flackern"
BeitragVerfasst: Mo Sep 26, 2011 12:37 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
@SDH.Prod: Mäßige deinen Ton.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Stützvektoren aus glRotate
BeitragVerfasst: Mo Sep 26, 2011 13:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
@SDH.Prod: Siehe dies als Verwarnung. Dieser Ton steht dir gegenüber anderen Personen in diesem Forum definitiv nicht zu.

@AMD:
Ich glaube ich verstehe worauf du hinaus willst. Dazu haben wir was im Wiki, was mir bei der Implementation von Billboards geholfen hat. Man kann aus der fertigen Matrix nämlich die drei Stützvektoren (Up, Right, Front) extrahieren und verwenden.
Alternativ kannst du auch einen Blick in meine Kameraklasse werfen, wo ich das für unterschiedliche Zwecke unterschiedlich implementiert habe.
(a) Flat Right / Flat Front
Zeigen nach Rechts bzw. Vorne, aber der Y-Wert ist sozusagen auf null gesetzt. Wunderbar geeignet, um eine Kamera in der Vogelperspektive über ein Terrain zu bewegen. Sie zeigen sozusagen flach auf dem Boden in die Blickrichtung (Flat Front) bzw. von der Kamera aus nach Rechts (Flat Right). Brauchen nur die Y-Rotation (vorrausgesetzt, die Y-Achse zeigt bei dir nach oben).
(b) Up, Right, Front
Die drei klassischen Vektoren z.B. für Billboards. Up zeigt nach Oben, Right nach Rechts und Front nach Vorne (jeweils wie der Betrachter es sieht).
Wie im Wiki beschrieben, kann man diese aus der ModelView-Matrix extrahieren.

Lass dich von SDH.Prod nicht nerven!

greetings

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Stützvektoren aus glRotate
BeitragVerfasst: Mo Sep 26, 2011 14:07 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Super genau das meinte ich!
Besten dank dafür :)

Und ja, ich versuchs :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Stützvektoren aus glRotate
BeitragVerfasst: Fr Okt 07, 2011 15:33 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Muss mich nochmal hier melden, da ich die Sache wohl noch nicht so ganz schnelle :| :x

Der Befehl gluLookAt ist ja durchaus bekannt sein ( :roll: ) und ich will mithilfe der Werte, die sich in der 4x4 Matrix befinden, die Werte rausbekommen, die bei gluLookAt den Parametern 4, 5 und 6 entsprechen. Also dorthin wo die Kamera schaut! Ich denke das sollte nun auch verständlich sein und besser als meine Erklärung davor.

Bei Wiki steht ja dieser Teil hier:
r r r p
u u u p
v v v p
0 0 0 1

Und v wird als Blickrichtungsvektor bezeichnet aber das klappt wohl noch nicht so wenn ich nur die 3 Werte nehme :?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Stützvektoren aus glRotate
BeitragVerfasst: Fr Okt 07, 2011 16:53 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Eigentlich steht da übersetzt:
r r r 0
u u u 0
-v -v -v 0
p p p 1

Zumindest das mit dem Minus ist eigentlich ersichtlich.
Und irgendwie auch logisch. z.B. ist wenn die Matrix die Einheitsmatrix ist die 3te Zeile (0,0,1,0). Also ein Vektor der in Richtung der Z-Achse zeigt. Man schaut allerdings in Richtung -Z.
Und der Vektor für die Position muss auch woanders sein.
Außerdem muss man bei Matrizen immer aufpassen das man sie nicht versehentlich falsch interpretiert, weil Zeilen- und Spaltenindex vllt vertauscht sind.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Richtungsvektoren aus glRotate
BeitragVerfasst: Sa Okt 08, 2011 12:18 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Das hilft mir leider trotzdem nicht sehr weiter o.O
Ich versteh letztendlich trotzdem nicht wie sich die Werte in der Matrix verhalten.

Wenn ich mich z.B. meine Position kein bisschen ändern aber die Blickrichtung wechsel ändern sich trotzdem etliche Werte und ich kann mir da einfach nicht herleiten wie ich mir das mathematisch herleiten kann, vorallem das diese Werte noch in einer bestimmen relation zueinander stehen!
Wenn ich z.B. einzelne Werte änder, dann kann man die gesamte Szene in die breite strecken oder sonst was mit machen aber ja... In der Beziehung hilft mir das alles nicht weiter. :|


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Richtungsvektoren aus glRotate
BeitragVerfasst: Sa Okt 08, 2011 14:34 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 26, 2010 12:54
Beiträge: 238
Wohnort: wieder in Berlin
Programmiersprache: Englisch
@ionos, @LordH

euer Tadel ist total unangebracht. SDH hat sich in keinster Weise was zu schulden kommen lassen nur weil er das Wort, Zitat: "NICHT", in Großbuchstaben verwendet hat.

:roll:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Richtungsvektoren aus glRotate
BeitragVerfasst: Sa Okt 08, 2011 19:23 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Naja gut, ich probiers mal mit ein bischen Code:
Code:
  1. right[0]:=Matrix[0,0];
  2. right[1]:=Matrix[0,1];
  3. right[2]:=Matrix[0,2];
  4. up[0]:=Matrix[1,0];
  5. up[1]:=Matrix[1,1];
  6. up[2]:=Matrix[1,2];
  7. look[0]:=-Matrix[2,0];
  8. look[1]:=-Matrix[2,1];
  9. look[2]:=-Matrix[2,2];
  10. pos[0]:=Matrix[3,0];
  11. pos[1]:=Matrix[3,1];
  12. pos[2]:=Matrix[3,2];

Damit hätte man die Zuordnung der Matrixwerte zu den unterschiedlichen Vektoren.
Wenn man die wieder in gluLookAt einstetzt müsste (in etwa) die selbe Matrix rauskommen (außer ich hab' irgendwo einen Fehler gemacht):
Code:
  1. gluLookAt(pos[0],pos[1],pos[2],pos[0]+look[0],pos[1]+look[1],pos[2]+look[2],up[0],up[1],up[2]);

Das mit dem angepeilten Punkt ist eigentlich noch ein bischen komplizierter, da man theoretisch aus Kamera-Position und -Richtung nur einen Strahl erhält. Man müsste wenn man einen Punkt will auch die Entfernung zur Kamera kennen. Für gluLookAt ist es aber egal in welcher Entfernung der Punkt liegt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Richtungsvektoren aus glRotate
BeitragVerfasst: Sa Okt 08, 2011 20:24 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Ahh :idea: Jetzt versteh ich das!

Ich hatte damals nur die Werte für "look" genommen aber vergessen auch die von "up" zu nehmen! Kein Wunder das es so nicht ging!
Aber das hilft mir nun definitiv weiter! Danke :)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 26 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.017s | 15 Queries | GZIP : On ]