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

Aktuelle Zeit: Sa Jul 12, 2025 02:59

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: Ortho im "normalen" 3D Modus?
BeitragVerfasst: So Jul 02, 2006 19:48 
Offline
DGL Member

Registriert: So Mai 28, 2006 10:57
Beiträge: 2
Wohnort: Scheuerfeld
Hallo Leute. Ich würde gerne ein UI für ein Spiel realisieren. Das Spiel selbst soll in 3D laufen. Das UI in 2D auf den normalen Schirm geklatscht werden.

Bisher sieht mein Mainloop so aus:
- Benutzereingaben verarbeiten
- Spielfeld zeichnen
- In Orthomodus gehen
(- UI zeichnen) das ist noch nicht realisiert
- Buffer ausgeben

Meine Funktion, um in Ortho zu gehen ist:

Code:
  1. // ----------------------------------------------------------------------------------------------------------------
  2. // | In Orthomodus gehen                                                                                          |
  3. // ----------------------------------------------------------------------------------------------------------------
  4.  
  5. Procedure GoOrtho;
  6. Begin
  7.  glLoadIdentity;
  8.  
  9.  glMatrixMode(GL_PROJECTION);
  10.  glLoadIdentity;
  11.  glViewport(0, 0, Resolution[0], Resolution[1]);
  12.  glOrtho(1, 1024, 768, 1, 0, -128);
  13.  glMatrixMode(GL_MODELVIEW);
  14.  glLoadIdentity;
  15. End;


Leider wird dabei jedesmal der gesamte Bildschirm gelöscht. Das Spielfeld flackert nur ganz kurz auf und dann ists schwarz. Der Mainloop hängt sich aber auch nicht auf. Sonst würde der Tastaturbefehl fürs beenden nicht mehr gehen.
Kann mir jemand sagen, was ich falsch gemacht habe?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 02, 2006 19:57 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
ich habs glaubich so gelöst, bin mir aber nich mehr sicher:

glMatrixMode(GL_Modelview);
glloadidentity;
glOrtho(0, 800, 600, 0, -1,1);
glMatrixMode(GL_PROJECTION);
glloadidentity;
......

......
gluPerspective(45, ViewPort[2]/ViewPort[3], 0.1, 1000);

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 02, 2006 20:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Als Ansicht wird der Orthomodus gespeichert. Du musst die Perspektive entweder nach dem UI zeichnen oder am Anfang der Renderschleife neu setzen. Sonst bleibt er immer im Orthomodus hängen und deine 3D Sachen werden vollkommen falsch dargestellt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 02, 2006 20:15 
Offline
DGL Member

Registriert: So Mai 28, 2006 10:57
Beiträge: 2
Wohnort: Scheuerfeld
Also wenn ich etwas im Ortho am Anfang der Renderschleife zeichne, dann in Perspective gehe bleibt das UI (Ortho) trotzdem so vorhanden? Muss ich dann nochwas mit der Tiefe beachten?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 02, 2006 21:38 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Da in der Regel die UI über dem Spielfeld liegt und nicht darunter, wird es wohl besser sein, wenn Du diese auch erst zum Schluss zeichnest. Der orthogonale Modus ist lediglich eine andere Projektionsmatrix wie gezeichnete Vertices dargestellt werden. Es ist kein zweiter Colorbuffer oder sowas in der Richtung.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 03, 2006 01:13 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Außerdem ist ganz wichtig zu verstehen, dass OGL eine Statemachine ist. D.h. der letzte Zustand bleibt bestehen, bis du was neues sagst. Wenn du in den Orthomouds wechselst um die UI zu zeichnen ist das natürlich richtig. Allerdings musst du am Anfang deines nächsten renderdurchlaufs dann wieder die 3D Perspektive herstellen, sonst bleibt OGL auf dauer im Orthomodus.

_________________
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  [ 6 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 | 16 Queries | GZIP : On ]