hab mich in letzter Zeit ein wenig mit Shadern beschäftigt und hab ein seltsames Problem: texture2D liefert mir immer nur schwarz!
An meiner Graka kann es nicht liegen, habs geschafft den Tesselation-Shader zu benutzen (Geforce 9800 GT), die Texturen werden ohne Shader korrekt geladen und dargestellt, gl_FragColor = vec4(gl_TexCoord[0].xy, 0.0, 1.0); liefert den zu erwartenden Farbverlauf und OpenGL spuckt auch keinen Fehler aus...
Solange ich keine Texturen im Shader benutze funktioniert auch mein Shader korrekt, hab auch mal den Verysimple-Shader gebunden -> gleiches Problem...
Ich übergebe meine Uniform-Variablen so:
Code:
Shader := AddShader(...); //Funktioniert ActivateShader(Shader); //Funktioniert glUniform1i(glGetUniformLocation(GetID(Shader), 'Texture'), Texture); //GetID holt die Adresse (kann man das so nennen? Jedenfalls das, was ich von OGL bekomme) des Shaders
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Gibst du in deinem Pascal-Code mit Texture vielleicht die TextureID von OpenGL an, die du auch bei glBindTexture angibst? Das wäre nämlich falsch. Du musst die ID der TMU angeben. Wenn du kein MultiTexturing verwendest also 0.
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 20:27, insgesamt 1-mal geändert.
Danke, das habe ich nämlich tatsächlich gemacht... Ich hatte mich schon gewundert, warum manchmal Texturen da waren und manchmal nicht... Werde das nachher mal einbauen, jetzt mach ich erstmal noch was anderes fertig
Mitglieder in diesem Forum: Google [Bot] und 14 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.