DGL
https://delphigl.com/forum/

gebundene Textur im Shader finden
https://delphigl.com/forum/viewtopic.php?f=20&t=9769
Seite 1 von 1

Autor:  Jens01 [ Di Mär 01, 2011 17:40 ]
Betreff des Beitrags:  gebundene Textur im Shader finden

Hallo..
ich bin Shader-Anfänger, deshalb diese Frage.

Wenn ich ein texturiertes Primitiv mit einem Shader rendere, sehe ich nur die glColor gesetzte, einheitliche Farbe. Die Textur ist weg.

Kann ich eine Textur, die ich z.B. mit glBitmap an ein Primitiv gebunden habe, in einem Vertex- oder FragmentShader wiederfinden.
Oder geht das nur, indem ich die Textur dem Shader mit glUniform übergebe.

Gruß Jens

Autor:  Coolcat [ Di Mär 01, 2011 18:23 ]
Betreff des Beitrags:  Re: gebundene Textur im Shader finden

Hier die Kurzform:
Code:
int stage = 0; // Verbindung zwischen glActiveTexture und Textur im Shader

GLint location = glGetUniformLocation(m_program, "texture");
glUseProgram(m_program);
glUniform1i(location, stage); // es reicht das einmal zu setzen

glActiveTexture(GL_TEXTURE0 + stage);
glBindTexture(GL_TEXTURE_2D, m_texture);



Fragmentshader:
Code:
uniform sampler2D texture;

void main() {
   vec4 color = texture2D(texture, gl_TexCoord[0].xy);
   gl_FragColor = color;
}

Autor:  Jens01 [ Di Mär 01, 2011 19:19 ]
Betreff des Beitrags:  Re: gebundene Textur im Shader finden

Fast.
Das funtioniert soweit, dass sich die Farbe des Primitives verändert, aber es wird nicht richtig zur Textur.
Ich benutze so eine Textur mit Holzstruktur. Und das Primitiv hat jetzt eine orange/braune Farbe.
Woran kann das liegen?

Autor:  damadmax [ Di Mär 01, 2011 19:28 ]
Betreff des Beitrags:  Re: gebundene Textur im Shader finden

Poste mal bitte deinen Fragment Shader.

Autor:  Coolcat [ Di Mär 01, 2011 19:44 ]
Betreff des Beitrags:  Re: gebundene Textur im Shader finden

Ggf. hast du deine Texturkoordinaten im Vertexshader nicht weitergegeben.

Autor:  Jens01 [ Di Mär 01, 2011 20:23 ]
Betreff des Beitrags:  Re: gebundene Textur im Shader finden

@Coolcat -> Das war's!

Jetzt funktioniert es!
Danke!

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