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
-
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ß
LightmanglGetVendorString -> 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
-
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ß
ducklerNaja 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ß
DucklerIch 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ß
DucklerDas 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 .