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

Aktuelle Zeit: Sa Jul 12, 2025 19:55

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Jun 23, 2004 09:05 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Es is mir ja schon bisl peinlich aber ich blicks grad wirklich net...

Also passt auf. Wärend meines Rendervorgangs durchlaufe ich folgende Schritte: Orthomodus -> Menü zeichnen -> Beschriftung Zeichnen -> kurz in die normale Perspektive (Ortho pushen) -> Tribuene Zeichnen -> Ortho poppen -> SwapBuffers()

Probleme macht der Teil ab "normale Perspektive". Das Ergebniss ist, das ich nix seh. Eigentlich sollte ich in 10 Einheiten entfernung meine Tribuene sehen, welche sich um die eigene Querachse(Da die Rotationsachse durch das Objekt geht) um 30° gedreht hat.

Hier mal der Code:
Code:
  1. procedure RenderStadion(Stadion : TStadion);
  2. var Test : TTribuene;
  3. begin
  4.      Test.Groesse := 500;
  5.      glPushMatrix;
  6.      glLoadIdentity;
  7.      glMatrixMode(GL_PROJECTION);
  8.      glPushMatrix;
  9.      glLoadIdentity;
  10.      gluPerspective(45.0, Form1.ClientWidth/Form1.ClientHeight, UMain.NearClipping, UMain.FarClipping);
  11.      glMatrixMode(GL_MODELVIEW);
  12.  
  13.      glDisable(GL_TEXTURE_2D);
  14.      //glDisable(GL_CULL_FACE);
  15.  
  16.      glRotatef(30,1,0,0);
  17.      glTranslatef(0,0,-10);
  18.      RenderTribuene(Test);
  19.  
  20.      glEnable(GL_TEXTURE_2D);
  21.      //glEnable(GL_CULL_FACE);
  22.  
  23.      glPopMatrix;
  24.      glMatrixMode(GL_PROJECTION);
  25.      glPopMatrix;
  26.      glMatrixMode(GL_MODELVIEW);
  27.  
  28. end;

Code:
  1. procedure RenderTribuene(Trib : TTribuene);
  2. var faktor : byte;            // faktor = Anzahl 500er Blöcke in Etage
  3. begin
  4.      if Trib.Groesse = 0 then exit; // Es gibt nix zu zeichnen
  5.  
  6.      //---------------------- Beginn des Renderns ------------------------------
  7.  
  8.      if Trib.Groesse >= 3000
  9.         then faktor := 6
  10.         else faktor := Trib.Groesse div 500;
  11.  
  12.      glColor3f(0.7,0.7,0.7);
  13.      glBegin(GL_TRIANGLES);
  14.        //BodenPlatte
  15.        glVertex3f(-2, 0,-2);
  16.        glVertex3f( 0, 0,-2);
  17.        glVertex3f( 0, 0, 2);
  18.        glVertex3f( 0, 0, 2);
  19.        glVertex3f(-2, 0, 2);
  20.        glVertex3f(-2, 0,-2);
  21.        //Rückseite
  22.        glVertex3f(-2, 1,-2);
  23.        glVertex3f(-2, 0,-2);
  24.        glVertex3f(-2, 0, 2);
  25.        glVertex3f(-2, 0, 2);
  26.        glVertex3f(-2, 1, 2);
  27.        glVertex3f(-2, 1,-2);
  28.        //Sitzfläche
  29.        glVertex3f(-2, 1,-2);
  30.        glVertex3f(-2, 1, 2);
  31.        glVertex3f( 0, 0, 2);
  32.        glVertex3f( 0, 0, 2);
  33.        glVertex3f( 0, 0,-2);
  34.        glVertex3f(-2, 1,-2);
  35.        //Linke Seite (zum Betrachter)
  36.        glVertex3f(-2, 1, 2);
  37.        glVertex3f(-2, 0, 2);
  38.        glVertex3f( 0, 0, 2);
  39.        //Rechte Seite (vom Betrachter)
  40.        glVertex3f( 0, 0,-2);
  41.        glVertex3f(-2, 0,-2);
  42.        glVertex3f(-2, 1,-2);
  43.      glEnd;
  44.  
  45.      //----------------------- Ende des Renderns -------------------------------
  46.      glColor3f(1.0,1.0,1.0);
  47. end;

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 23, 2004 09:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Flash hat geschrieben:
Probleme macht der Teil ab "normale Perspektive". Das Ergebniss ist, das ich nix seh. Eigentlich sollte ich in 10 Einheiten entfernung meine Tribuene sehen, welche sich um die eigene Querachse(Da die Rotationsachse durch das Objekt geht) um 30° gedreht hat.

Nein, du machst nämlich folgendes :
Code:
  1. glRotatef(30,1,0,0);
  2. glTranslatef(0,0,-10);

Du rotierst also die Modelansichtsmatrix um 30° und verschiebst dann das Modell in diese Richtung um 10 Einheiten auf der Z-Achse, das ist nicht das was du willst. Das muss dann doch so aussehen wenn du dein Modell um 10 Einheiten nach hinten versetzt und 30° um die eigene Achse gedreht haben willst :
Code:
  1. glTranslatef(0,0,-10);
  2. glRotatef(30,1,0,0);
  3.  


Nicht vergessen : Rotiert und dann verschoben != Verschoben und dann rotiert

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 24, 2004 00:45 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wawawarte mal... :?:

Ich hab mal ne Skizze rangebaut.

Roter Punkt = KoOordinatenUrsprung
Blauer Punkt = Betrachter Pos (Blickrichtung -z)

Oben ist was ich will, unten was ich nicht will.

Das was du gerade gesagt hast ergibt do unten oder?

Der Fehler der auftritt ist etwas seltsamer als was du vermutest. Als ich den Winkel mal in ner Schleife ansteigen lassen hab, hat sich das sowas von seltsam bewegt, das konnt ich gar net mehr zuordnen...


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 24, 2004 10:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
glTranslatef und dann glRotatef :
Bild

glRotatef und dann glTranslatef :
Bild

Ich dachte du willst das obige Ergebnis. Ich hab übrigens zum Rendern die Daten deiner Tribüne da oben ausm Source genommen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 24, 2004 18:29 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
"Und es fiel ihm wie Schuppen von den Augen...":shock:

Öhm ja ... ich geh dann mal ... weinen...

:roll: :oops:

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


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


Wer ist online?

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