Seite 1 von 1

OpenGL ES 2.0 und GLSL

Verfasst: 30.01.2017, 15:23
von alexander_ro
Hallo Mädels ... Jungs ...

ich weiß momentan nicht warum der Shader nicht kompilierbar ist.

So sieht der aus:

Code: Alles auswählen

#version 100
precision highp float;

uniform vec4 vPosition;

uniform vec2 uvCoord;
uniform mat4 transMatrix;

out vec2 UV;

void main ()
{
  gl_Position = vPosition * transMatrix;
  UV = uvCoord;
}
der sagt dann folgendes:

Code: Alles auswählen

0:9(1): error: `out' qualifier in declaration of `UV' only valid for function parameters in GLSL ES 1.00
Ist für OpenGL 2.0 ES nicht die GLSL Version 100?

Grüße
Alexander

Re: OpenGL ES 2.0 und GLSL

Verfasst: 31.01.2017, 11:41
von waigie
Wenn ich das richtig im Kopf habe, ist out an der Stelle in GL ES 2 nicht erlaubt, das muss ein varying sein. Siehe dazu https://www.khronos.org/files/opengles_ ... nguage.pdf Seite 31.

Wenn ich den Wikipedia https://de.wikipedia.org/wiki/OpenGL_ES ... g_Language richtig interpretiere, ist out wohl ab GL ES 3.0 an der Stelle wieder richtig.

Re: OpenGL ES 2.0 und GLSL

Verfasst: 31.01.2017, 17:38
von alexander_ro
Ja so kann man die Meldung auch verstehen. Habe ich wohl falsch verstanden. Ich hatte schon mal in der khronos Doku nach gelesen aber irgendwie nicht verstanden das hier nur Funktionen gemeint sind. Ich dachte wenn man das Schlüsselwort für in/out verwendet würde es für alle Variablen gehen. Bisschen in konsequent ...

Leider geben die ganzen Leute die im Netz zu OpenGL schreiben meist nicht an für welche Version die das machten. Mag ja sein das es jemand der den ganzen Tag nichts anderes macht leicht erkennen kann ... der braucht aber vermutlich die Beispiel nicht. Die Khronos Doku ist ja auch nicht gerade der Renner. Wenn man das mal mit gemacht hat wundert es nicht das kein Mensch OpenGL benutzen mag. Die Plattform Unabhängigkeit ist ja wie immer bei so etwas nur Marketing Geschwätz. Die OpenGL Programmteile von mir unter Linux entwickelt funktionieren ohne Anpassung nicht unter z.B. Windows.