Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jun 04, 2024 02:32

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: gebundene Textur im Shader finden
BeitragVerfasst: Di Mär 01, 2011 17:40 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mär 01, 2011 18:23 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
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;
}

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mär 01, 2011 19:19 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
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?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mär 01, 2011 19:28 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Poste mal bitte deinen Fragment Shader.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mär 01, 2011 19:44 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Ggf. hast du deine Texturkoordinaten im Vertexshader nicht weitergegeben.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Mär 01, 2011 20:23 
Offline
DGL Member

Registriert: Mo Nov 09, 2009 12:01
Beiträge: 200
@Coolcat -> Das war's!

Jetzt funktioniert es!
Danke!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]