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

Aktuelle Zeit: Di Jul 08, 2025 01:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Jun 14, 2011 20:50 
Offline
DGL Member

Registriert: Mi Nov 18, 2009 10:55
Beiträge: 20
Programmiersprache: C++
Hallo.
Ich bin mir gerade absolut unsicher, ob ich es jetzt hinbekommen habe zwischen 2D und 3D Modi zu wechseln, oder nicht.
Sind meine Augen so schlecht? :shock:
Ich habe versucht 2 Objekte mit gluPerspective und eines mit glOrtho zu erzeugt. Und eigentlich müsste es geklappt haben ... Könnte mir hier mal jemand sagen was jetzt fehlerhaft ist (meine Wahrnehmung oder der Wechsel)?

Der Code dazu ist hier:
Code:
  1.  
  2. void c_GraphicManager::Rendering() const
  3. {
  4.         glClear(GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT|GL_COLOR_BUFFER_BIT);
  5.         glMatrixMode(GL_PROJECTION);
  6.         glLoadIdentity();
  7.         gluPerspective(ViewAngel, 1.f, minZ, maxZ);
  8.         glMatrixMode(GL_MODELVIEW);
  9.         glLoadIdentity();
  10.         glTranslatef(150, 0.f, -200.f);
  11.         glRotatef(Time * 120, 1.f, 0.f, 1.f);
  12.         glScalef(25,25,25);
  13.         glCallList(Cube);
  14.  
  15.         glLoadIdentity();
  16.         glTranslatef(-150, 0.f, -200.f);
  17.         glRotatef(Time * -120, 1.f, 1.f, 0.f);
  18.         glScalef(45,10,20);
  19.         glCallList(Cube);
  20.  
  21.         glMatrixMode(GL_PROJECTION);
  22.         glLoadIdentity();
  23.         glOrtho(-(DimX/2), DimX/2 , -(DimY/2), DimY/2, minZ, minZ); //Start in d. Mitte d. Bildschirms
  24.         glMatrixMode(GL_MODELVIEW);
  25.         glLoadIdentity();
  26.         glRotatef(Time * -120, 0.f, 1.f, 1.f);
  27.         glScalef(0.25,1.25,0.25);
  28.         glCallList(Cube);
  29. }
  30.  


Oh und noch eine Frage: Kann ich mir nicht irgendwie ein paar glLoadIdentity()- oder andere Funktions-Aufrufe sparen?


mfg Klabauter


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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 14, 2011 21:13 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Bei "gluPerspective" muss der zweite Parameter das Verhältnis von Fensterbreite zu -höhe enthalten, sonst ist das Bild verzerrt.
Am besten sieht man den unterschied zwischen 2D und 3D wenn man ein langes Rechteck hat, was von etwas unterhalb des Betrachters in Blickrichtung von ihm weg verläuft. Bei 2D bleibt die Breite gleich, bei 3D wird sie logischerweise kleiner.

Edit: Achso, was ich grad sehe: bei glOrtho hast du zweimal minZ drin stehen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 14, 2011 22:26 
Offline
DGL Member

Registriert: Mi Nov 18, 2009 10:55
Beiträge: 20
Programmiersprache: C++
Okay vielen Dank für's Drüberschauen.
Um ganz sicher zu gehen, habe ich einfach alle Objekte "aufsteigen" lassen. Und sieh an: Plötzlich war das 2D-Element weg, die anderen konnte man schön gemächlich immer höher kommen und größerwerden sehen. :lol:


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


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] 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.007s | 15 Queries | GZIP : On ]