glPixelTransfer: keine Auswirkung
-
Hallo,
ich fotographiere den Bildschirm mit glCopyTexImage2D, die Texture wurde vorher mittels glTexImage2D als eine Tiefen Texture erstellt (GL_DEPTH_COMPONENT).
Die das fotographieren selbst funktioniert ja auch und ich habe auch das Tiefenergebnis, aber glPixelTransferf(GL_DEPTH_SCALE, 0.1) wirk sich überhaupt nicht auf das Kopieren der Pixel aus. Die Tiefenwerte werden nicht mit dem Wert (z.B. 1.5 oder 0.1) multipliziert. Das Bild sieht immer gleich aus.
Muss man vorher irgendwas mit glEnable aktivieren??
-
Hat denn sonst niemand das Problem mal gehabt??
Ich verstehe einfach nicht warum sich die Funktion in keinster Weise auswirkt
Die Tiefen texturen sehen immer gleich aus.so fotographiere ich den Bildschirm:
glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, X, Y, Width, Height, 0 );
-
Wenn ich "glPixelTransferf(GL_RED_SCALE, ...)" aufrufe, spring OpenGL nur auf SoftwareModus um
Aber bei "glPixelTransferf(GL_DEPTH_SCALE, ...)" geschiet nach wie vor gar nichts. Dabei ist das für Shader mit ShadowMaps wie z.B. ShadowMapping sehr wichtig.
-
Wenn Du die Werte im ZBuffer anders skaliert haben willst, dann setz doch einfach die Clipping-Planes entsprechend.
Durch den hierarchischen Aufbau des ZBuffers ist das Kopieren in eine Textur wenig performant.
Es ist sinnvoller gleich in eine geeignete Textur zu rendern.
-
hellihjb schrieb:
Durch den hierarchischen Aufbau des ZBuffers ist das Kopieren in eine Textur wenig performant.
eigentlich nicht, das kopieren ist trivial und relativ schnell. die hieararchy vom z-buffer wird dabei nicht benoetigt, sie ist nur zum testen notwendig.