Neu bei OpenGL und GLSL.Vertex Texture Fetch (Texture lesen im Vertex Shader)
Ich verwende OpenGL ES 3.0 und meine GLSL Version #version 300 es.
Ich möchte Pixel (ARGB-Daten) an jeder Position in meinem Vertex Shader (Vertex Texture Fetch) bekommen. Ich habe überprüft, dass mein Android-Tablet Vertex Texture Fetch unterstützt.
Jetzt gehe ich in der Textur (Bild) und Texturkoordinaten an den Vertex-Shader und
GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4);
Ist dies der richtige Weg ausführen oder soll ich GL_POINTS verwenden. wenn ich GL_POINTS verwende, wie man die Textur couordinate?
können Sie alle Beispiele/Beispielcode bereitstellen, die einen vollständigen Pixel lesen (ARGB) im Vertex-Shader.
Anbringen meine Vertex-Shader
uniform sampler2D sTexture;
in vec4 aTextureCoord;
out vec3 colorFactor;
vec2 vTextureCoord;
vec4 tex;
void main()
{
vTextureCoord = aTextureCoord.xy;
tex = texture(sTexture,vTextureCoord);
float luminance = 0.299 * tex.r + 0.587 * tex.g + 0.114 * tex.b;
colorFactor = vec3(1.0, 1.0, 1.0);
gl_Position = vec4(-1.0 + (luminance * 0.00784313725), 0.0, 0.0, 1.0);
gl_PointSize = 1.0;
};
Meine Texturkoordinaten übergeben werden {0.f, 1.f}
{1.f, 1.f} {0.f, 0.f } { 1.f, 0.f}
und der Shader von
GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4);
Ich habe es mit glGet verifiziert und bekam 16 für GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS –
"Implementierungen können Null Vertex Texture Units deklarieren", [Tabelle 6.31 (Seite 274)] (https://www.khronos.org/registry/gles/specs/ 3.0/es_spec_3.0.4.pdf) sagt der minimale Wert für 'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS' ist 16, nicht Null. Sie könnten an ES 2.0 denken, wo das Minimum Null war ([Tabelle 6.20, Seite 154] (https://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf)). – genpfault
Danke für die Antwort :) mein Ziel ist so leuchtenden Histogrammwert aus der Farbinformation in Vertex-Shader zu berechnen, color = Textur (texid, texcoordinate) wird es alle Pixel in Vertex-Shader zurückkehren? um alle Pixel zu erhalten, sollte ich GL_POINTS verwenden? Ich bin neu zu diesen Dingen @Tommy –