PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Opengl - Farbtiefe


Unregistered
2002-10-24, 16:17:01
Ich habe mal so zum Spass mein OpenGL-Progrämmchen auf 16bit Farbtiefe umgestellt und dabei aber festgestellt, dass die Farbverläufe gleich aussehen wie mit 32 bit. Also nachgesehen was mein PixelFormat hergibt - dabei fiel mir auf:
Egal was ich anfordere ich bekomme immer PixelFormat Nr. 2
Fogende PixelFormate kann mein Treiber:

1 8 8 8 8 32 24 8
2 8 8 8 8 32 24 8
3 8 8 8 8 32 24 8
4 8 8 8 8 32 24 8
(Index rot grün blau alpha color z stencil)

Dabei kommt kein 16bit colorbuffer vor???

Ich will diese schönen streifigen 16bit Farbverläufe wiederhaben :D
Ne mal ernst, wie krieg ich 16bit Farbtiefe? Wieso gibt mir ChoosePixelFormat egal was ich anfordere immer PixelFormat nr.2 zurück?


btw: Graka ist Voodoo 5 5500 AGP Treiber 1.0.0.734

zeckensack
2002-10-24, 17:22:28
Wenn du ein 16er Format haben willst, dann solltest du bevor du die Pixelformate abfragst mal den Bildschirm in ein 16bittiges Format umschalten (Windows: ChangeDisplaySettings).

Unregistered
2002-10-24, 17:54:04
Mach ich doch eh:

DisplayMode.dmBitsPerPel=bitsperpixel;
DisplayMode.blah=blub;
ChangeDisplaySettings(&DisplayMode, CDS_FULLSCREEN);

hWnd = CreateWindowEx(blah);
hDC = GetDC(hWnd);

PIXELFORMATDESCRIPTOR Pfd;
//jetzt wird er ausgefüllt

PixelFormatIndex = ChoosePixelFormat(hDC, &Pfd);


Mit einem 16bit Bildschirm seh ich auch 32bit Grafiken mit 16 bit, das ist klar, ich möchte aber einen 16bit Colorbuffer. Diesen gibt es aber nicht bei meinen unterstützten PFD's (->siehe 1.Posting) Deshalb frage ich mich wie z.B bei Quake3 das funktioniert, dort sieht man nämlich einen Unterschied zwischen 16 und 32 bit, z.b deuten die Unterschiede bei wiederholten Blending-Operationen (Rakentenrauch) daruaf hin dass nicht nur ein 16bit Bildschirm sondern auch ein 16bit ColorBuffer benutzt wird.