Hi Leute,
ich habe folgendes Problem:
Wenn ich eine Textur zum Sample'n an meinen Shader übergeben will, mache ich normalerweise folgendes:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, TextureID);
glUniform1i(SamplerLocation, 0);
...und wenn ich mehrere übergeben will, folgendes:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, TextureID);
glUniform1i(SamplerLocation, 0);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, TextureID2);
glUniform1i(Sampler2Location, 1);
Als dies einem neuen Projekt wiederholt habe, wirft OpenGL mir bei glUniform1i einen Fehler aus: "Invalid operation", die Textur wird aber dennoch an den Sampler übergeben. Wenn ich im Shader nun z.B. vier Sampler habe, werden alle zur ersten Textur, die ich übergeben habe, also "TextureID". Und lasse ich glUniform1i ganz weg, wird die Textur immer noch übergeben. ?!?!
Ich habe bereits überprüft ob "glGetUniformLocation" einen Fehler ausgibt.
Kann mir jemand erklären warum dieser Fehler auftritt?
MfG
RenX