Hallo Leute,
Ich wollte Tesselation-Shader in meinem c++ glsl-editor unter OpenGL 3.2 shader Version 150 (Mehr geht bei meiner GK leider nicht) zum laufen bringen, schaff es aber nicht.
Hat jemand vielleicht ein Hello World, mit Tesselation unter OpenGL 3.2?
Habe nix gefunden, alle Beispiele, die ich gesehen hab, laufen unter Shader-Version 400.
Leider hat auch schon die Anmeldung im Hauptprogramm nicht funktioniert. Folgendes hab ich versucht:
Code: ... // Vertex, Fragment, Geomerty - Shader werden compilt GLuint tc = glCreateShader(GL_TESS_CONTROL_SHADER); const char * tcs = "..."; glShaderSource(tc, 1, &tcs, NULL); glCompileShader(tc); GLint infoLogLength; glGetShaderiv(tc, GL_INFO_LOG_LENGTH, &infoLogLength); GLchar* strInfoLog = new GLchar[infoLogLength + 1]; glGetShaderInfoLog(tc, infoLogLength, NULL, strInfoLog); fprintf(stderr, "Compilation error in shader: %s\n", strInfoLog); delete[] strInfoLog; ...// Das gleiche mit Tessellation Evaluation Shader GLuint p = glCreateProgram(); glAttachShader(p,v); glAttachShader(p,f); glAttachShader(p,g); glAttachShader(p,tc); glAttachShader(p,te); glLinkProgram(p); glUseProgram(p);
Egal was ich für die Tess-Shader als Source angebe, es wird ignoriert, ich bekomme keinen Compler-Log, für die anderen Shader schon.
Das Program läuft aber, Vertex, Fragment, Geomerty - Shader werden compilt und funktionieren, tc und te werden ignoriert.
Nebenbei noch eine Frage: Kann man eigentlich seine GK mit solchen Experimenten schrotten? Ich habe kürzlich in meiem editor von der QGL-Shader-Klasse auf die Funktionen, die über glew verfügbar sind gewechselt (und zwar weil die QGLShader-Klasse von qt keine Tessellation-Shader unterstützt), bekomme seit dem öfters Blackscreens und die Lüfterkontrolle bleibt stets auf 100 %... Is wohl eh Zeit für ne neue
|