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

Aktuelle Zeit: Fr Jul 11, 2025 08:48

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Probs mit dem Ortho-Modus
BeitragVerfasst: Mo Mai 31, 2004 22:21 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Hi,
schreibe hier gerade 1 1/2 Testprogramme im Ortho-Modus.
Nun stellt sich aber das Problem, dass die hier problemlos laufen, aber auf einem anderen Rechner (Radion 9500Pro) wird nichts angezeigt, d.h. nur der schwarze Bildschirm von glClear. Woran könnte sowas liegen? Es wird ansich nur ein einziges Quad angezeigt.
In den Ortho-Modus geh ich so:
Code:
  1.  
  2.   glMatrixMode(GL_PROJECTION);
  3.   glLoadIdentity;
  4.   glViewport(0,0,ScreenWidth,ScreenHeight);
  5.   glOrtho(0,ScreenWidth,0,ScreenHeight, -1000,1000);
  6.   glMatrixMode(GL_MODELVIEW);
  7.   glLoadIdentity;
  8.  


Vorher wird noch das hier aufgerufen:
Code:
  1.  
  2.   glClearColor(0,0,0,0);
  3.   glClearDepth(1);
  4.   glDepthFunc(GL_LESS);
  5.   glShadeModel(GL_SMOOTH);
  6.   glEnable(GL_DEPTH_TEST);
  7.   glEnable(GL_TEXTURE_2D);
  8.   glEnable(GL_LINE_SMOOTH);
  9.   glEnable(GL_CULL_FACE);
  10.   glHint (GL_LINE_SMOOTH_HINT, GL_FASTEST);
  11.  


Danach wird immer nur die Zeichenroutine aufgerufen:
Code:
  1.  
  2.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  3.   glLoadIdentity;
  4.   glTranslateF(x,y,-1);
  5.   glBegin(GL_QUADS);
  6.     glColor3f(1,0,0);
  7.       glVertex3f(0,0,0);
  8.     glColor3f(0,1,0);
  9.     glVertex3f(150,0,0);
  10.     glColor3f(0,0,1);
  11.       glVertex3f(150,150,0);
  12.     glColor3f(1,1,1);
  13.     glVertex3f(0,150,0);
  14.   glEnd;
  15.   Screen.glSwapBuffers;
  16.  

Wobei Screen.glSwapBuffers nur SwapBuffers aufruft.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:28 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das einzige was bei meinem Ortho Befehl aufn ersten Blick anders ist, ist das ich statt "..., -1000, 1000)" dort "...,-1,1)" stehe habe.

Keine Ahnung ob das was ändert.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:33 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Das sind ja nur die z-Grenzen, innerhalb derer gezeichnet wird.

// Edit: Ich hab hier mal das Projekt angehängt, so wie is im Moment ist.

// Edit2: Neue Zip angehängt, in der eben war n Fehler. :)


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


Zuletzt geändert von Philip am Mo Mai 31, 2004 22:39, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Öhm, hab mir grade den Source angesehen und folgendes entdeckt :
Code:
  1.   glTranslateF(x,y,-1001);

hab dann aus der -1001 ne -1 gemacht und schon gings auf meiner Radeon9700. Evtl. hast du da wirklich nur nen Flüchtigkeitsfehler gemacht.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Nein, das war der Fehler, den ich mit dem 2. Upload korrigiert habe. Da habe ich nur überprüft, ob die Near/Far-Werte funktionieren. :)
Das Quad hängt übrigens hin und wieder an der Bildschirmkante fest, aber das ist egal, das ist nur Dekoration sozusagen, uninteressant. :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie gesagt geht das bei mir, und rein von der Technik her ist ne Radeon9700 ja dasselbe wie ne Radeon9500. Aber evtl. ist auf dem Rechner auf dem es nicht geht ne alte Treiberversion installiert, denn der OpenGL-Treiberteil von ATI ist leider noch nicht soweit wie bei NVidia. Also sieh am besten mal nach was da für Treiber installiert sind (bei mir ists der neue Catalyst 4.5).

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
"Treiber ist der aktuelle, zwar nicht der offizielle, der von Omega"
Könnten andere Treiber, wo es läuft, vielleicht tollerant gegenüber irgendeinem Fehler, der im Code ist (Initialisierung?) sein?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 22:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hm...es gibt ja diverse gemodette Treiber die eine (meist ältere) Version des OpenGL-Treiber mitbringen (siehe z.B. die NGO-Treiber, die haben eine recht alte OGL-Treiberdatei dabei die in CS schneller sein soll), aber bei Omega ist das AFAIK nicht der Fall (nutze selbst immer die Treiber von ATI selbst).

Ich habe mir aber deinen Quellcode mal genauer angesehen und wirklich nichts gefunden was Probleme machen sollte. Aber in SetDCPixelFormat setzt du sowohl Farbtiefe als auch Tiefenpuffer auf 16 Bit, und da der Treiber versucht was passendes zu wählen könnte (obwohl ich mir das nicht vorstellen kann) da was schiefgehen. Also ersetze am besten die 16 jeweils mit 32, 32-Bit ist ja auf aktuellen Karten eh immer schneller. Und wenn die Karte dann keinen 32-Bit Farb- oder Tiefenpuffer kann, wird automatisch das nächst kleinere Format gewählt (also für Z immer 24-Bit, 32-Bit Tiefenpuffer gibts ja nur bei sehr wenigen Karten).
Ansonsten habe ich noch gesehen das du das Backfaceculling aktiviert hast (warum auch nicht) und der Treiber aber evtl. fälschlicherweise hier GL_FRONT für das zu cullende Face gewählt hat (laut der GL muss es ja GL_BACK sein, aber Treiberschreiber sind ja auch nur Menschen). Deshalb setze mal explizit glCullFace(GL_BACK) und schau nach obs dann geht.

Sonst fällt mir eigentlich nichts ein, zumal der Code sauber aussieht.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 31, 2004 23:06 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Mit den genannten Änderungen geht es bei ihm, vielen Dank für deine Mühe. :)


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


Wer ist online?

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