OpenGL Startprobleme



  • Hi

    ich hab mir vor kurzem das Buch 3D-Grafik mit OpenGL gekauft.
    Um die Programme zu erstellen verwende ich Visual Studio 2010 Professional. Die Libaries, Linker und Include Directories sollte ich richtig konfiguriert haben.
    Nur leider bekomme ich immer nur ein schwarzes Fenster. Egal welches Beispielprogramm ich starte.
    Ich bin echt schon am verzweifeln 😞 hab schon gegoogelt aber nichts gefunden.
    Treiber hab ich den neuesten (275.33).

    Mein System:
    windows 7 64 Bit
    Intel Core i7 2630QM
    GeForce GTX 460M
    8GB RAM

    Das Projekt hab ich hier geuploadet: http://www.megaupload.com/?d=YUWCBY49

    Wäre echt super wenn ihr mir helfen könntent 🙂

    mit freundlichen Grüßen
    Dominik



  • Du rufst nirgendwo SwapBuffers auf, also schonmal klar dass du nichts siehst. Abgesehen davon malst du deine Punkte immer außerhalb vom Bildschirm (glVertex() will keine Pixelkoordinaten). So z.B. gehts:

    while( 1 )
      {
        if( key_pressed() ) break; 
    
        glBegin( GL_POINTS );
    
          GLubyte c = rand() % 256;
          GLdouble sx = static_cast<double>(rand()) / RAND_MAX;
          GLdouble sy = static_cast<double>(rand()) / RAND_MAX;
    
          glColor3f(1,1,1);
          glVertex2d(sx, sy);
    
        glEnd();
        screen_interface.swap_buffers();
      }
    

    Wobei ich schonmal davon abraten würd double zu verwenden. Grafikkarten können nur float (sagen wir mal so).



  • Danke für deine Hilfe!

    Das hat mich jetzt ganz schön viel Zeit gekostet herauszufinden das glVertex() Werte von -1 bis 1 haben will ^^ beim ausgeben %d für doubles verwenden funktioniert halt nicht so gut xD naja Anfängerfehler

    Nur hab ich jetzt Zweifel an dem Buch. Es wird nämlich so gearbeitet als würde glVertex() Pixelwerte annehmen. Kann es sein das das in einer älteren OpenGL Version so war? Der Treiber, den ich installiert hab unterstützt Version 3.1 und 4.1, steht zumindest auf der Seite. Wenn ja, gibts eine Möglichkeit das im Programm umzustellen?
    Oder gibts da vielleicht irgendwas das ich falsch gemacht haben könnte?

    Mit freundlichen Grüßen
    Dominikw



  • Dominikw schrieb:

    Das hat mich jetzt ganz schön viel Zeit gekostet herauszufinden das glVertex() Werte von -1 bis 1 haben will ^^ beim ausgeben %d für doubles verwenden funktioniert halt nicht so gut xD naja Anfängerfehler

    Ich empfehle dringend einen Debugger zu benutzen. Programmieren ohne Debugger ist so ca. wie ich mir Leben ohne Zivilisation vorstelle...

    Dominikw schrieb:

    Nur hab ich jetzt Zweifel an dem Buch. Es wird nämlich so gearbeitet als würde glVertex() Pixelwerte annehmen. Kann es sein das das in einer älteren OpenGL Version so war?

    Nein das war nie so, der ganze glVertex() Kram ist selbst eigentlich ein Relikt aus dem Mesozoikum 😉
    Vermutlich hast du übersehen dass im Buch eine Projektionsmatrix gesetzt wird die Pixelwerte entsprechend auf -1..1 abbildet (vermutlich mit glOrtho()).



  • dot schrieb:

    vermutlich mit glOrtho()

    Welches auch aus der Steinzeit ist 😃



  • dot schrieb:

    Ich empfehle dringend einen Debugger zu benutzen. Programmieren ohne Debugger ist so ca. wie ich mir Leben ohne Zivilisation vorstelle...

    da hast du recht. vor allem weil man mit visual studio sowieso leicht debuggen kann

    dot schrieb:

    Vermutlich hast du übersehen dass im Buch eine Projektionsmatrix gesetzt wird die Pixelwerte entsprechend auf -1..1 abbildet (vermutlich mit glOrtho()).

    leider nicht. ich hab jetzt noch einmal alles durchgeschaut (Buch, Anhang, Beispiel auf der CD) und nichts dergleichen gefunden 😞 naja, ich werd trotzdem weiterlesen und hoffen das das das einzige bleibt das nicht genau erklärt wurde 🙂


Anmelden zum Antworten