OpenGL i błedy przy deklaracji zmiennych interpolowanych

0

Witam,

chciałem rozpocząć pracę w OpenGL, na początek chciałem odpalić szkielet programu, który na innym komputerze działał bez problemu. Jednak u mnie (korzystam z Visual Studio 2010) przy kompilacji pojawiają się błędy:

Loading vertex shader...
ERROR: 0 '' : Version number not supported by OGL driver
ERROR: 0 'in' : supported in GLSL 1.30 or later
ERROR: 0 'in' : supported in GLSL 1.30 or later
ERROR: 0 'out' : supported in GLSL 1.30 or later

i podobne we fragment shaderze.

Kod vertex shadera, z którym są problemy to:

 
#version 330

uniform mat4 P;
uniform mat4 V;
uniform mat4 M;

in vec4 vertex;
in vec4 color;

out vec4 iColor;

Prosiłbym o pomoc i wytłumaczenie jak można naprawić ten problem.

0

Jaką masz w ogóle kartę grafiki i sterowniki? Generalne jest tak, że różne sterowniki różnie traktują błędy, być może twój kod jest błędny, ale niektóre sterowniki te błędy ignorują/ akceptują/ etc (podobna sprawa jak z HTMLem i przeglądarkami internetowymi). Albo może twoje sterowniki nie obsługują OpenGL 3.30 - spróbuj dać wersję 1.30 w kodzie shadera.

0

Rzeczywiście wstawienie w kod wersji 1.30 pomogło, dzięki za wskazówkę. Chociaż troche mnie zdziwiło, że wersja wyższa jaką jest 3.30 nie obsłużyła tego. W każdym razie odpaliłem jednak inny szkielet programu, błedy "inów" i "outów" zostały wyeliminowane, jednak pojawił się problem z następującym komunikatem:

ERROR: 'texture' : no matching overloaded function found (using implicit conversion)

Byłbym wdzięczny również za pomoc z tym problemem. Niestety niezbyt jeszcze się orientuje w kodzie OpenGLowskim. Co może być powodem nie znalezienia przeładowanej funkcji dla argumentów uniform sampler2D textureMap0 oraz in vec2 iTexCoords ?

0

to nie „wersja wyższa nie obsłużyła tego”, tylko twoja karta grafiki lub jej sterownik nie obsługuje wyższej wersji:
ERROR: 0:2: '' : Version number not supported by OGL driver

1 użytkowników online, w tym zalogowanych: 0, gości: 1