Problem mit Parametern zwischen Vertex- und Fragmentshader



  • Hallo!

    Ich hab' hier seit Stunden ein Problem, das ich irgendwie nicht so ganz nachvollziehen kann.

    Gegeben folgende Shader:

    // Vertex shader
    const char* vertex_shader =
        "#version 330\n"
        "layout(location = 0) in vec3 vertex;\n"
        "layout(location = 1) in vec4 vertex_color;\n"
    
    //  "out vec4 ColorVar;"
    
        "uniform mat4 modelview;\n"
        "uniform mat4 projection;\n"
    
        "void main() {\n"
        "    gl_Position = vec4(vertex, 1.0);\n"
    
    //  "    ColorVar    = vec4(1.0f,1.0f,1.0f,1.0f);\n"
    //  "    ColorVar    = vertex_color;\n"
        "}\n";
    
    const char* string =
        "#version 330\n"
    
    //  "in vec4 ColorVar;\n";
        "out vec4 out_color;\n"
    
        "void main() {\n"
    //  "    out_color = ColorVar;\n"
        "    out_color = vec4(1.0f,1.0f,1.0f,1.0f);\n"
        "}\n";
    

    Egal wie ich die auskommentierten Zeilen auswähle, verändere oder sonstwie, wenn ich versuche, eine Farbe vom Vertex-Shader zum Fragment-Shader zu bekommen, entstehen nur schwarze Fragmente (bis ich das herausgefunden hatte, wo der Puffer ja auch per default schwarz gelöscht wird...).
    Alle Logs beim Kompilieren und Linken bleiben leer, glValidateProgram liefert auch nix, glGetError ebenfalls.
    Hat jemand von euch eine Ahnung, was ich hier falsch mache? Es funktioniert nur, wenn ich die Farbe im Fragment-Shader hartkodiere.

    Viele Grüße,
    glBegin



  • Hat sich erledigt, der Fehler war so blöde, dass ich für heute vielleicht lieber mal glEnd() sagen sollte -.-



  • Statt "in"/"out" versuch "varying".


Anmelden zum Antworten