OpenGL Hardwareunterstützung.



  • Hi Leute,

    ich linke meine OpenGL Prg's mit der OpenGL32.lib von Visual Studio 2005.
    Allerdings laufen meine Prg's sehr langsam, etwa 10 Mal langsamer als unter meinem Linux Rechner.
    Wie kann ich herausfinden, ob unter Windows XP die OpenGl32.lib Hardwarebeschleunigung verwendet und wenn das nicht der Fall ist, wie kann ich die Hardwareacceleration aktivieren?

    Vielen Dank für eure Hilfe, Jungs;-)
    Gruß
    Lightman


  • Mod

    1)device namen abfragen

    2.a)neuste treiber installieren
    b)rausfinden ob samples z.b. von nehe mit hardware laufen und dann den unterschied zu deiner app suchen



  • Lightman schrieb:

    Hi Leute,

    ich linke meine OpenGL Prg's mit der OpenGL32.lib von Visual Studio 2005.
    Allerdings laufen meine Prg's sehr langsam, etwa 10 Mal langsamer als unter meinem Linux Rechner.
    Wie kann ich herausfinden, ob unter Windows XP die OpenGl32.lib Hardwarebeschleunigung verwendet und wenn das nicht der Fall ist, wie kann ich die Hardwareacceleration aktivieren?

    Vielen Dank für eure Hilfe, Jungs;-)
    Gruß
    Lightman

    glGetVendorString -> Der sollte dem deiner Grafikkarte entsprechen, also meistens NVIDIA oder ATI bzw evtl auch INTEL.

    Hast du wglMakeCurrent() eingesetzt wenn das Fenster erstellt wird?
    Den FormatDescriptor richtig setzen:

    static	PIXELFORMATDESCRIPTOR pfd=					// pfd Tells Windows How We Want Things To Be
    	{
    		sizeof(PIXELFORMATDESCRIPTOR),					// Size Of This Pixel Format Descriptor
    		1,								// Version Number
    		PFD_DRAW_TO_WINDOW |						// Format Must Support Window
    		PFD_SUPPORT_OPENGL |						// Format Must Support OpenGL
    		PFD_DOUBLEBUFFER,						// Must Support Double Buffering
    		PFD_TYPE_RGBA,							// Request An RGBA Format
    		bits,								// Select Our Color Depth
    		0, 0, 0, 0, 0, 0,						// Color Bits Ignored
    		0,								// No Alpha Buffer
    		0,								// Shift Bit Ignored
    		0,								// No Accumulation Buffer
    		0, 0, 0, 0,							// Accumulation Bits Ignored
    		16,								// 16Bit Z-Buffer (Depth Buffer)
    		0,								// No Stencil Buffer
    		0,								// No Auxiliary Buffer
    		PFD_MAIN_PLANE,							// Main Drawing Layer
    		0,								// Reserved
    		0, 0, 0								// Layer Masks Ignored
    	};
    

    http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01

    Teste mal mit glGetError ob es fehler in der Render-Funktion gibt :).
    HTH
    rya.



  • Hallo zusammen,

    ich habe das gleiche Problem wie Lightman, kann aber mit dem Pixelformatdescriptor von Scorcher24 nichts anfangen,da ich SDL nutze um ein Fenster zu öffnen.

    glGetVendorString werde ich versuchen, ich habe mir das NVidia SDK gezogen und habe das Vendor Example(TNT Utility) durchlaufen lassen und hier das Ergebnis:

    Vendor: NVIDIA

    Device ID: 0x00F9
    Chip Name: GeForce 6800 Series GPU

    - Hit any key to end -

    Daraus schließe ich dass ich Hardwareunterstützung habe aber warum wird der Code langsamer ausgefürt als auf meinem Linux Rechner?
    Z.B. Nehe lesson6 (blau texturierter rotierender Würfel), die Ausgabe ruckelt nicht ist aber auch mind 10 mal langsamer als mein Linux Rechner.

    Nutzt Ihr irgendwelche neueren obengl32.libs/dlls oder noch andere/ neuere libs als diese opengl32.lib glu32.lib glaux.lib?

    vllt. ist meine openGl32.lib veraltet und hat garkeinen Hardwarebeschleunigung?
    Ich programmiere auf WinXP VS 2005 + neueste Graka Treiber!

    Gruß
    duckler


  • Mod

    sdl? dachte das waere software.

    was meinst du mit 10 mal langsammer, zufaellig 60fps statt 600?



  • Hi rapso,

    sdl? dachte das waere software.

    wie meinst Du das, SDL = Simple Direct Media Layer das *ist* Software?

    Gruß
    duckler



  • Software: http://de.wikipedia.org/wiki/Software_Rendering

    Und wie langsam ist denn nun "langsam"? Wie mißt du das? Komm mal mit Infos rüber, sonst können wir dir nicht helfen.

    @rapso: Man kann da wohl auch hardwarebeschleunigt arbeiten.



  • duckler schrieb:

    Hi rapso,

    sdl? dachte das waere software.

    wie meinst Du das, SDL = Simple Direct Media Layer das *ist* Software?

    Gruß
    duckler

    Naja kommt drauf an wie Du SDL initialisierst. rapso meint damit, dass SDL in Software rendert. Das ist aber nicht immer der Fall.
    Ich hab SDL mit SDL_OPENGL initialisiert und das ist definitv ein Hardwarebuffer, @rapso.
    rya.



  • Hi,

    ich würd euch gern ne Framezahl sagen, ich hab mich bei NeHe und in Google schon dusslig gesucht nach nem Beispiel das ich kompilieren kann und das einen Framecounter hat, hab aber leider noch nichts gefunden, habt Ihr da vllt. was das ich nutzen könnte?

    Vielen Dank für eure Hilfe
    Gruß
    Duckler



  • Ich nutze FTGL für Fonts...
    Ein Framecounter selbst sollte ja nicht so das Problem sein..
    rya.



  • Wie meinst du Hardwarebeschleunigung ???
    Ich dachte OpenGL sendet automatisch alles an die Grafikkarte...

    Wäre es vielleicht möglich, dass du auf Windows Vsync an hast ?
    Versuch mal es mit aTuner oder so was abzuschalten.

    Oder vielleicht hast du auf XP zuviel im Hintergrund laufen, das die CPU schwächt ^^



  • Hi,

    ich hab die NeHe Lesson 45 geladen und laufen lassen, meine FPS liegt bei 75
    ;-(( !

    Gruß
    Duckler



  • duckler schrieb:

    Hi,

    ich hab die NeHe Lesson 45 geladen und laufen lassen, meine FPS liegt bei 75
    ;-(( !

    Gruß
    Duckler

    Ich denke da ist VSync im Treiber aktiv....
    SChau mal im Treiber nach was da eingestellt ist.
    rya.



  • Hi,
    ich dachte VSync muß aktiv sein damit es ein besseres Bild gibt sont ist alles zu schnell, ruckelig und voller Bildfehler!

    Gruß
    Duckler



  • Reichen dir 75 fps nicht ??

    Ist doch an sich nichts schlechtes 🙂

    Warum es langsamer ist weißt du jetzt ja 😃



  • duckler schrieb:

    Hi,
    ich dachte VSync muß aktiv sein damit es ein besseres Bild gibt sont ist alles zu schnell, ruckelig und voller Bildfehler!

    Gruß
    Duckler

    Das ist so nicht richtig. VSync kann die Qualität verbessern. Allerdings ist dann auch die FPS auf diesen Wert gelockt weil der Renderer ja wartet bis der Monitor fertig ist. Aber mal ehrlich.. ich hab meinem Programm zwischen 800-2500fps je nach Szene... aber brauchen tut man das nicht ;). Das Auge kann ab ca. 30 fps eh keinen unterschied mehr sehen. Mein Ziel sind 60-100 fps minimum im Endprodukt. Das reicht dicke. Ich bau sowieso einen Framelimiter ein der nicht mehr als 100 fps zulässt. Einfach weil mehr auf keinen Fall nötig ist.
    rya.



  • @Scorcher24, darf ich Dich fragen was Du für eine GraKa hast?
    Sucher keine NVidia 6800 Ultra, eher was größeres oder?

    Gruß
    Duckler



  • Ich habe (GeForce 6200 TC) bei einer sehr sehr sehr einfachen Szene 1300 fps ^^

    Vsync verhindert "Tearing", also "Risse" im Bild.
    Falls du näheres wissen willst: http://alt.3dcenter.org/artikel/2004/03-12_a.php



  • @Scorcher24
    Danke für den Link, wenn es Dir nichts ausmacht, könntest Du Dir vllt. die lesson 45 ziehen un posten wieviele FPS mit und ohne VSYNC Du hast?

    Ach ja nochwas linkst Du die opengl32.lib oder die opengl32.dll direkt?

    Gruß
    duckler



  • mit Vsync vermutlich 60 😃

    Soweit ich weiß braucht der Linker die LIB, das ganze Programm aber auch die DLL .


Anmelden zum Antworten