DGL
https://delphigl.com/forum/

GL_LUMINANCE16_ALPHA16
https://delphigl.com/forum/viewtopic.php?f=20&t=10880
Seite 1 von 1

Autor:  Bergmann89 [ So Jun 09, 2013 10:58 ]
Betreff des Beitrags:  GL_LUMINANCE16_ALPHA16

Hey,

kurze Frage, weil ich dazu nicht wirklich was im Netz finde. Wenn ich ein FBO mit GL_LUMINANCE16_ALPHA16 anlege, wie les bzw. schreib ich die Werte dann im Shader? Ich hab mir das so gedacht, ist das richtig:
Code:
  1. float lum = 0.5;
  2. float alpha = 0.5;
  3. //write
  4. gl_FragColor = vec4(lum , lum , lum , alpha );
  5. //read
  6. vec2 tmp = texture2D(uTexture, gl_TexCoord[0].st);
  7. lum = tmp.r;
  8. alpha = tmp.a;


MfG Bergmann.

Autor:  Coolcat [ So Jun 09, 2013 11:12 ]
Betreff des Beitrags:  Re: GL_LUMINANCE16_ALPHA16

texture2D liefert immer einen vec4 zurück, egal was da für eine Textur hinter liegt. Also dein "tmp" müsste ein vec4 sein.

Autor:  Bergmann89 [ So Jun 09, 2013 13:44 ]
Betreff des Beitrags:  Re: GL_LUMINANCE16_ALPHA16

Ja, sry da hab ich mich vertippt. Muss natürlich ein vec4 sein. Mir ging es mehr um die Werte (red, alpha). Werden die mit 16bit berechnet?

Autor:  Coolcat [ So Jun 09, 2013 16:13 ]
Betreff des Beitrags:  Re: GL_LUMINANCE16_ALPHA16

Ja, müsste eigentlich, aber die Daten werden in float konvertiert und auf 0...1 normalisiert.

Wenn du mit Integer-Daten arbeiten willst brauchst du einen Integer-Sampler (isampler2D oder usampler2D), dann gibt die texture-Funktion auch einen ivec4 bzw. uvec4 zurück. Aber dafür würde man dann z.B. etwa GL_RG16UI als internes Texturformat nehmen. (Müsste man jetzt mal checken ab welcher GLSL und OpenGL-Version es das ganze Zeug gibt)

Autor:  Bergmann89 [ So Jun 09, 2013 17:47 ]
Betreff des Beitrags:  Re: GL_LUMINANCE16_ALPHA16

Ah, genau das wollt ich wissen. Danke. Ich brauch das schon als float, ich war mir nur nicht sicher ob er das float aus dem 16bit Wert errechnet.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/