ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4439047
Jetzt (Chat):
7 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
OpenGL API + SDL
Re: 16 Bit PBuffer [gelöst]
Normal
AutorThema
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
16 Bit PBuffer [gelöst]Nach oben.
Hallo zusammen.

Ich möchte einen Offscreen Filter in OpenGL erstellen, der auf 16 Bit Daten arbeitet ( bspw medizinische Datensätze ). Dazu möchte ich in einen PBuffer rendern und das Ergebnis zurücklesen. Welches Format muss der PBuffer haben, bzw ist das überhaupt möglich in GL? Ich bin bisher nur auf WGL_TYPE_RGBA_FLOAT_ARB, WGL_TYPE_RGBA_ARB und WGL_TYPE_COLORINDEX_ARB gestossen. Zu Colorindex konnte ich bisher noch keine sinnvolle Doc finden. Könnte ich das Format nehmen? Irgendwelche anderen Hinweise?

Danke!

1 Mal gendert, zuletzt am 27.11.2008, 18:52:20 Uhr von coma_sd.
24.11.2008, 13:27:38 Uhr
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
Re: 16 Bit PBufferNach oben.
Hab es selber in die Hand genommen, falls jemand mal das gleiche machen will: Lieber gleich Framebuffer Object nehmen und Textur mit 1, GL_RED, GL_UNSIGNED_SHORT erstellen.
24.11.2008, 18:11:21 Uhr
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
Re: 16 Bit PBufferNach oben.
Hm, weiteres Problem. Mir gelingt das ganze offscreen rendering mittlerweile, auch mit den erzeugten 16Bit 1-component Texturen. Allerdings sieht das Resultat aus, als ob die Werte quantisiert sind, d.h. auf 8-bit gescaled. Die Texturen an sich sind jedoch ok auch das lesen aus dem fbo klappt gut. Gibt es da evtl gl Optionen für den rendering call ( GL_QUADS ), die ich beachten müsste?
25.11.2008, 13:43:41 Uhr
Schrompf Offline
ZFX'ler


Registriert seit:
04.04.2006

Sachsen
Re: 16 Bit PBufferNach oben.
Der Bildschirm, der das am Ende anzeigt, kann doch höchstens 8Bit anzeigen. Ist es da wirklich die Anzeige, die Dir Sorgen macht? Oder ich verstehe das Problem nicht.
25.11.2008, 18:36:17 Uhr
Dreamworlds Development
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
Re: 16 Bit PBufferNach oben.
Nein, die Werte werden natürlich mittels eines anderen renderers angezeigt, der die 16 Bit Werte auf eine rgba transferfunktion mapped.

Meine Vermutung momentan ist, dass das die Fixed Function Pipeline von gl einfach vermurkst, ich werde das deshalb einfach mal durch einen shader jagen und sehen ob das dann passt.

1 Mal gendert, zuletzt am 25.11.2008, 19:16:05 Uhr von coma_sd.
25.11.2008, 19:06:07 Uhr
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
Re: 16 Bit PBufferNach oben.
Hier ein screenshot zur Erklärung:

http://people.gephex.org/~coma/screenshots/fuxxored.png
25.11.2008, 19:13:53 Uhr
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
Re: 16 Bit PBuffer [gelöst]Nach oben.
Es scheint allen ernstes nicht möglich zu sein mit der aktuellen gl version in 16-bit Texturen zu rendern (d.h., mit internal-format irgendwas_16 ). Die internen 16-bit Formate werden vom Framebuffer alle rejected.

Falls jemand mal das gleiche Problem hat (ich persönlich hasse es, meine exakte Frage zu googlen und auf einen thread zu stossen, der mit einem lapidaren: "Habs!" oder "Gelöst!" endet): der einfach workaround ist GL_ALPHA, GL_ALPHA32F_ARB und GL_UNSIGNED_SHORT für das fbo zu wählen. Geht natürlich auf Kosten der performance, aber falls man wie in meinem Fall Median oder nicht-linearen Gauss über 1GB Datensätze laufen lassen will, ist das immer noch verschmerzbar (im Vgl zu CPU Variante).
27.11.2008, 18:57:08 Uhr
Das Ich Offline
ZFX'ler


Registriert seit:
11.07.2005

Schleswig-Holstein
Re: 16 Bit PBuffer [gelöst]Nach oben.
Hast du auch half-floats probiert?

Hier ist die Spec.: http://www.opengl.org/registry/specs/ARB/half_float_pixel.txt
19.01.2009, 22:52:06 Uhr
http://www.one-digit-ahead.com/
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel