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

Aktuelle Zeit: Fr Jul 18, 2025 21:03

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: *solved* gluPerspective ohne Wirkung
BeitragVerfasst: So Mär 18, 2007 15:52 
Offline
DGL Member

Registriert: So Mär 18, 2007 04:24
Beiträge: 4
Hallo,

da ich neu im Forum bin, möchte ich mich als erstes kurz vorstellen.
Mein Name ist Sven (achwas), und programmiere seit ein paar Jahren sporadisch kleine OpenGL Prgrämmchen.
Etwas Größeres ist nie daraus geworden, aber das tut ja auch nicht zwingend Not.
Ferner bin ich hauptsächlich mit der Sprache C++ unterwegs, hoffe aber trotzdem, hier nett aufgenommen zu werden.
Eure Tutorialseite ist übrigens hervorragend, und ich möchte mich bei allen Autoren herzlich dafür bedanken!

Nun zu meinem ersten echten Problem. Ich sitze bereits seit einigen Stunden daran, ohne eine Lösung zu finden. Dabei ist es eigentlich eine völlig banale Sache.

Es handelt sich um den OpenGL Init Teil einer Rendering Engine:

Code:
  1.  
  2. SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
  3.  
  4. glViewport(0, 0, 800, 600);
  5.    
  6. glShadeModel(GL_SMOOTH);
  7. glClearColor(0, 0, 0, 0);
  8. glClearDepth(1.0f);      
  9. glEnable(GL_DEPTH_TEST);
  10. glDepthFunc(GL_LEQUAL);  
  11. glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
  12.  
  13. glMatrixMode(GL_PROJECTION);
  14. glLoadIdentity();
  15. gluPerspective(45.0f, (GLfloat) 800/600, 0.1, 100.0);
  16.  
  17. glMatrixMode(GL_MODELVIEW);
  18. glLoadIdentity();
  19.  



Das Ganze hat noch etwas Bastelcharakter, da ich schnell ein Dreieck auf den Bildschirm bekommen wollte, um erstmal überhaupt etwas zu sehen. Viewport, etc sind daher noch statisch angegeben.
Im Folgenden wird dann der Buffer gelöscht, eine kleine Translation durchgeführt, und ein Dreieck gezeichnet:

Code:
  1.  
  2. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  3. glLoadIdentity();
  4.  
  5. glTranslatef(0.0f, 0.0f,-1.1f);
  6.  
  7. glBegin(GL_TRIANGLES);
  8. glColor3f(1.0f, 1.0f, 1.0f);
  9. glVertex3f(0.f, 0.5f, 0.0f);
  10. glVertex3f(-0.5f, -0.5f, 0.0f);
  11. glVertex3f(0.5f, -0.5f, 0.0f);
  12. glEnd();
  13.  
  14. SDL_GL_SwapBuffers();
  15.  



Nun zum eigentlichen Problem:
Ich habe den selben Effekt, wie er beim Vergessen von gluPerspective auftritt. Sprich, ich sehe das Dreieck bis zu einer maximalen Z-Translation von -1.0 Einheiten. Bei -1.1 verschwindet es völlig.
Nun ist die Perspektive meiner Meinung nach aber völlig korrekt gesetzt?
Ich habe auch schon testweise den Wert der Near-Clippingplane größer gemacht, um zu testen ob es dann bereits bei 1.0 verschwindet. Dies war nicht der Fall.
Es scheint so, als ob gluPerspective überhaupt keinen Effekt bewirkt...

Habe ich ein riesiges Brett vorm Kopf, oder ist der Code wirklich in Ordnung?

Der Compiler gibt keinerlei Fehlermeldungen und nichtmal eine Warnung aus. Was die Bibliotheken angeht, sollte daher alles in Ordnung sein.

Nur am Rande zur Info: Ich programmiere mit Visual C++ Express mit Platform SDK Server R2, glGetString liefert mir ATI, V2.0.xxx, 9800pro/... ...


Hatte vielleicht schonmal jemand ein ähnliches Problem und es gelöst bekommen?

Vielen Dank für Eure Zeit und Gruß,
Sven.


Zuletzt geändert von Sven am So Mär 18, 2007 19:40, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 18, 2007 17:43 
Offline
DGL Member

Registriert: So Mär 18, 2007 04:24
Beiträge: 4
So, es war ja zu befürchten... das Problem befand sich (wie so oft) etwa 50cm vor dem Bildschirm. :roll:

Nachdem ich eben nochmal alles durchgegangen bin, habe ich den Fehler gefunden. Es war ein simples == anstatt eines korrekten != ... Manchmal hilft es einfach, wenn man eine Nacht drüber schläft. Gestern sah ich einfach den Wald vor lauter Bäumen nicht...

Immerhin muss ich euch jetzt nicht mehr mit diesem blöden Problem belästigen :D

Gruß,
Sven.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 18, 2007 17:50 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Von welcher Nacht ist hier die Rede? Naja... Ach ja... C++ Programmierer sind hier durchaus willkommen. Hier ist längst nicht mehr nur noch Delphi angesagt. Sind recht viele "andere" dabei, aber warum sollten wir den Namen der Community ändern? Mir viele auch nix süffiges ein. OpenGl Entwicklerverbindung? Klingt irgendwie lasch, also lass dich davon nicht verwirren. Naja, wenn Du beim nächsten mal ein Problem hast, wo wir auch eine Chance haben, Dir weiterzuhelfen, dann gib ruhig bescheid :twisted: Ansonsten kann ich Dir empfehlen bei solchen Problemen einfach mal einen Breakpoint auf die entsprechende Zeile zu setzen um zu sehen, wann wird sie denn überhaut so aufgerufen. Deine antwort lässt ja vermuten, daß das nicht umbedingt dann passiert ist, wann Dus dir vorgestellt hast...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 18, 2007 19:36 
Offline
DGL Member

Registriert: So Mär 18, 2007 04:24
Beiträge: 4
Ich hatte das Problem bereits gestern bemerkt, daher konnte ich bis heute eine Nacht drüber schlafen :wink:

Es war in der Tat so, dass der Init Block überhaupt nicht (!) aufgerufen wurde.
Der oben stehende Code verteilt sich auf mehrere Klassenmethoden, und wird nacheinander aufgerufen. Ich hatte sogar einige Blöcke mit kurzen Console-Window Ausgaben versehen, um zu schauen ob die Reihenfolge stimmt. Nur den blöden Init Block muss ich dabei übersehen und vergessen haben :(

Da ich bei diesem Programm das erste Mal mit VS Studio Express arbeite (und dabei dieses ominöse Platform SDK benötige), hatte ich schon die Befürchtung, dass die GLU aus irgendeinem Grund nicht funktioniert. Aber das hat sich ja nun erledigt :?

Gruß,
Sven.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 19, 2007 09:21 
Offline
DGL Member

Registriert: Di Feb 06, 2007 15:33
Beiträge: 24
Moin,

nur mal zu diesem dusseligen VS Studio. Vielleicht gefällt dir SharpDevelop ja besser. Ansonsten einfach überlesen ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mär 19, 2007 15:29 
Offline
DGL Member

Registriert: So Mär 18, 2007 04:24
Beiträge: 4
Hallo,

SharpDevelop habe ich vor einiger Zeit mal angetestet, ist aber doch eher für C# ?
Ansonsten bin ich mit der Express Version von MS Visual Studio C++ durchaus zufrieden.
Vorher hatte ich hauptsächlich mit Dev-C++ gearbeitet, welches ebenfalls alles andere als schlecht ist.

Gruß,
Sven.


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 » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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 | 14 Queries | GZIP : On ]