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

Aktuelle Zeit: Fr Jul 18, 2025 00:48

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



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Quad immer zu mir zeigen lassen.
BeitragVerfasst: Di Nov 16, 2004 20:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Sers!

Wie kann ich es Programmieren, dass ein Quad das ich zeichne mit der Fläche immer zu mir zeigt?
Würde nun gerne den Wiki benutzen, aber weiß nicht nach was ich suchen soll.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 20:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
http://wiki.delphigl.com/index.php/Billboard

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 20:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Such mal unter "Billboard".
//Edit: Mist war zu langsam :D

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 21:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Zitat:
Für jedes Billboard:
glPushMatrix()
glTranslate( BillboardPos.x, BillboardPos.y, BillboardPos.z )
glGet( GL_MODELVIEW_MATRIX, Matrix )
Setze Rotationsteil von Matrix auf Identitätsmatrix
glLoadMatrix( Matrix )
glVertex2( + 1, + 1 )
glVertex2( - 1, + 1 )
glVertex2( - 1, - 1 )
glVertex2( + 1, - 1 )
glPopMatrix()


Tja, kann es sein das es nur für die GL_MODELVIEW_MATRIX geht?
Oder wie soll es ich realisieren, wenn ich nen zeil im projection modus und nen teil im modelviewmodus verschiebe?!

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 21:26 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Man kann doch nicht für jedes Quad die Matrix neu setzen.

Man benötigt zwei Vektoren nach oben und nach rechts/links an denen man das Quad ausrichten kann.
Also

v1:=pos+(-v1-v2)*size;
v2:=pos+(+v1-v2)*size;
v3:=pos+(+v1+v2)*size;
v4:=pos+(-v1+v2)*size;

Den eine Vektor nach oben hat man bei gluLookAt sowieso schon angegeben. Der Vektor zur Seite ist dann das Kreuzprodukt aus dem Vektor nach oben und der Blickrichtung nach vorne.
Wenn man eine Matrix hat, die nur die Kameraverschiebung/drehung ohne Projektion enthält, dann ist der Vektor zur Seite die 1.Spalte der Matrix und der Vektor nach oben steht in der 2.Spalte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 21:28 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Red mal Deutsch :-/ (Was nicht an deiner Sprache liegt ;) )
Aber ich habe nur die Hälfte verstanden.
Evtl doch mal nen Beispiel? ;)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 21:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Wie setzt du denn deine Kamera?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 21:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
glViewPort(0, 0, frmMain.ClientWidth, frmMain.ClientHeight);
gluPerspective(60, frmMain.ClientWidth/frmMain.ClientHeight, 1, 128);
glTranslatef(Pos[0]-4,Pos[2]-2,Pos[1]-8);
glRotatef(70,1,0,0);
glRotatef(45,0,1,0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

So setze ist die Kamera.
Und dann wird mit einem einfachen Translate nochmal im ModelView mein "Quad" gezeichnet.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Nov 16, 2004 23:22 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Dann kannst du dir die Vektoren so errechnen:

var
matrix:array[0..15]of single;
...

glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glRotatef(70,1,0,0);
glRotatef(45,0,1,0);
glGetFloatv(gl_modelview_matrix,@matrix)
glLoadIdentity;

Vector nach oben =(matrix[4],matrix[5],matrix[6])
Vector nach recht=(matrix[0],matrix[1],matrix[2])


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Nov 17, 2004 15:03 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Im Partikel-Tutorial wird auch Billboard verwendet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 21, 2004 10:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Jun 09, 2003 08:09
Beiträge: 98
viewtopic.php?t=1234&highlight=

_________________
www.las.eu.tc


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 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.009s | 16 Queries | GZIP : On ]