Opengl Shader Uniform wird im Code nicht erkannt?

Ich versuche gerade OpenGl zu lernen. Und ich habe folgendes Problem, wenn ich mit glGetUniformLocation versuche meine Uniform vom Shader ausfindig zu machen findet er diesen uniform einfach nicht. Habt ihr eine Idee wieso?

Mein Code:

const char* vertexShaderSource = R"(
    #version 460 core


    uniform vec3 transformation;


    in vec3 position;
    out vec4 color;


    void main()
    {
        gl_Position = vec4(position, 1.0);
        color = vec4(1.0, 1.0, 0.0, 1.0);
    }
)";


const char* fragmentShaderSource = R"(
    #version 460 core


    in vec4 color;
    out vec4 outColor;


    void main()
    {
        outColor = color;
    }
)";

int main()
{
    SDL_Init(SDL_INIT_VIDEO);
    Window2D window2D("Debug", 800, 600);
    gladLoadGL();
    glViewport(0, 0, 800, 600);


    //Dreieck vertices


    float vertices[] = {
        -0.5f, -0.5f, 0.0f,
        0.5f, -0.5f, 0.0f,
        0.0f, 0.5f, 0.0f
    };


    //Shader
    //Vertex Shader
    GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER);
    glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
    glCompileShader(vertexShader);


    //Fragment Shader
    GLuint fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
    glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);


    //Programm
    GLuint program = glCreateProgram();
    glAttachShader(program, vertexShader);
    glAttachShader(program, fragmentShader);
    glLinkProgram(program);


    //Uniform
    GLint uniform = glGetUniformLocation(program, "transformation");
    if (uniform == -1) {
    std::cerr << "Error: Not Found" << std::endl;
    }


    //Shader


    //VBO and VAO
    GLuint VBO, VAO;
    glGenVertexArrays(1, &VAO);
    glGenBuffers(1, &VBO);


    glBindVertexArray(VAO);


    glBindBuffer(GL_ARRAY_BUFFER, VBO);
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);


    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*) 0);
    glEnableVertexAttribArray(0);


    glBindBuffer(GL_ARRAY_BUFFER, 0);
    glBindVertexArray(0);


    while(window2D.windowRun() == false)
    {
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);


        glUseProgram(program);


        glBindVertexArray(VAO);
        glDrawArrays(GL_TRIANGLES, 0, 3);
    }
    window2D.closeWindow();
    return 0;
}

Sonst funktioniert tatsächlich alles, das Dreieck wird Gelb angezeigt nur der Uniform funktioniert nicht.

CPP, Informatik, OpenGL, Spieleprogrammierung, GLSL
Welche Programmiersprache nach javascript?

ich hab eine lange zeit nichts anderes als javascript gemacht darunter ist auch Typescript und react und vieles mehr und klar man kann noch mehr lernen. Php kann ich ausreichend fürs backend.

aber immer auf den Browser beschränkt zu sein und websites macht auf Dauer keinen spass. Ich will auch in der lage sein desktop programme zu schreiben.
electron js kann das aber ist auch nicht das beste was man nutzen kann und sobalds aufwendiger wird hat man Probleme und riesige Dateien. Man lernt auch nichts neues dadurch das ist nichts für mich.

c# c++ c java oder rust hatte ich im kopf.

(python syntax gefällt mir auch nicht , mir geht es auch ums lernen. Nicht nur mit pip install irgendwas nutzen von jemand anderes. Am ende hast du keine ahnung von der programmierung)

aber wie weiss ich welches der oben genannten Sprachen eher was für mich ist.

Java ist Typescript sehr ähnlich, läuft überall und ich könnte da schnell zurechtkommen aber dafür ist es deutlich langsamer als C++ und nicht so mächtig.

Mit c++ lernst du auch viel und wird oft in Unis oder Schulen gelehrt, hätte damit einen vorteil wenn ich es schon gut kann.
Rust hat einen kleinen hype und viele meinen es wird in zukunft wichtiger werden = mehr jobs.

c# ist soweit ich weiss
nur für windows Anwendungen gut, mit den anderen sprachen könnte man auch in zukunft was für linux machen wenn man lust drauf hat.

ich seh da keinen grossartigen vorteil zu java oder c++ in der schnelligkeit.

Computer, Microsoft, App, IT, Webseite, Java, JavaScript, compiler, Cplusplus, C Sharp, CPP, Informatik, Oracle, Programmiersprache, Python, sdk, C (Programmiersprache), React, Angular
Programmieren lernen ohne Schulabschluss?

Moin kurz zu mir und mein wissen: Ich lerne momentan sehr stark die c++ basics(ich tu mich realitv schwer) Aber kann sie ansich schon gut also das hauptkonzept von Sprachen ansich usw.

Und ich bin 17 Jahre alt.

Zu meiner frage, es sind letztendlich 2 in einer.

Ich habe mein zukunftsgang etwas verbaut indem ich nichtmal ein Hauptschulabschluss in der Tasche habe, dennoch stelle ich mir die frage ob ich in irgendeine schule gehen kann die Computer Science lehrt. Und jemanden auch aufnimmt ohne einen Abschluss. Möglicherweise sogar ein Studiengang.

Und die andere frage ist: Ich lerne ja momentan schon c++ über einen Udemy kurs (Ich erwarte nicht das ich dannach der Superhero in der Programmierung bin, wäre ja auch quatsch). Dennoch stellt sich bei mir die frage, dieser kurs Beinhaltet wirklich nur die Basics, Und ich frage mich wo kann ich den dann wirklich gut werden? Alle kurse die ich bis jetzt gesehen habe handeln um die Basics von der Programmierung undnicht um Irgendein Advanced level.

DIE ZWEI FRAGEN IN KURZFORM:

  1. Kann ich auch ohne jeglichen Schulabschluss in eine Schule gehen die Computer Science lehrt, Oder möglicherweise ein Studiengang (Fernstudium) für mich in Aussicht möglich wäre.
  2. Kann ich im selbstlehrenden ein sehr guter Programmierer werden? Wenn ja wo. den wie oben schon erläutert finde ich nur Online Kurse/Websiten die nur die Basics in anspruch nehmen.
Lernen, Bildung, CPP, Programmiersprache, Studiengang
Compiler MinGw64/g++ in/für C++ in Visual Studio Code?

Hey,

ich finde es es ziemlich verwirrend mit dem Compiler und dem g++ für/in C++ in VS Code.

Also im Prinzip will ich einfach nur ein simples GTA5-Single-Playerskript in C++ machen, welches am Ende aber keine .lua sondern eine .dll- oder eine .asi-Datei sein soll. Wie muss ich denn jetzt vorgehen?

Ich habe schon etwas von komprimieren (oder so) der .cpp-Datei gehört, irgendwas mit g++ und MinGw64. Ich habe selber noch nicht viel Ahnung davon und habe so etwas bis jetzt nur scheiternd versucht.

Deswegen diese Frage: Was muss ich jetzt genau in VS Code und auf meinem PC (Windows 11) installieren und vor allem wenn es wirklich etwas mit diesem MinGw64 zu tun hat, welche Version/Ausführung und was ist mit dem g++ und so weiter?

(g++ soll wohl ein Befehl im Terminal von VS Code sein und MinGw64 ein Compiler soweit ich das gehört habe)

Ach ja, um das gleich mit zu verpacken: Wenn ich die Erweiterung C/C++ in VS Code installiere und dann Code mit z.B.

#include <windows.h >

schreibe, markiert mir das VS Code als Fehler und redet was von IncludePath. Es wäre nett, wenn mir noch jemand verrät, was es damit auf sich hat und wie ich den Fehler beheben kann (es soll wohl auch etwas mit dem Compiler/MinGw64 zutun haben, soweit ich das gehört habe).

Zusammengefasst würde ich einfach nur gerne Klarheit von Leuten haben (die sich damit auskennen), was ich jetzt brauche, für was etwas ist, um am Ende ein kleines GTA5-Skript erstellen zu können, das in .dll oder .asi herauskommt.

Danke schon einmal im Voraus!

programmieren, compiler, Cplusplus, CPP, Programmiersprache, dll-datei, Visual Studio Code

Meistgelesene Fragen zum Thema CPP