2017-05-07 18 views
0

내 조각 쉐이더에서 다음과 같은 오류가 점점 오전 :조각 쉐이더 컴파일 에러는 3.0

Compile log: ERROR: 0:7: 'texture' : syntax error: syntax error

쉐이더는 다음과 같이 기록 : 왜 오류를 얻고있다

#version 300 es 

in mediump vec2 texCoord; 

out mediump vec4 fColor; 

uniform sampler texture; 

void main(void) { 

    fColor = texture(texture, texCoord); 
} 

?

+0

: fColor = texture2D (질감, TEXCOORD)? – Argb32

+0

분명히 texture2d가 glsl 3.0에서 변경되었습니다. –

답변

0

texture은 이제 GLSL 3.00의 예약어입니다. 이름을 변경해야합니다.

More info

+0

'myTexture': 구문 오류 : 구문 오류 ' 모든 변수 이름은 동일한 오류를 발생시킵니다. 2014 년 SIGGRAPH 비디오에서이 코드를 얻었는데,이 코드는 GLSL3.0을 변경 한 후와 텍스쳐 예약 작업에 대해 읽은 후에 나온 것입니다. –

+0

좋아, 어쩌면 유일한 변화가 아니라, 나는 단지 이것을 보았을 것이다. 어쩌면 더 많은 것이 –

+0

이지만 이것은 사소한 쉐이더 다. 다른 것을 볼 수 있니? 부정확 한 것이이 코드에만 국한되어 있다고 말하는 것이 안전합니까? –

1

두 개의 오류가있었습니다. 첫째, texture은 키워드이므로 변수 이름으로 사용할 수 없습니다. 둘째, sampler은 OpenGL ES에서 데이터 유형으로 존재하지 않습니다. 특정 하위 유형이 필요합니다 (예 : sampler2D.

근무 쉐이더입니다 : 당신은 의미

#version 300 es 

in mediump vec2 texCoord; 
out mediump vec4 fColor; 
uniform sampler2D myTexture; 

void main(void) { 
    fColor = texture(myTexture, texCoord); 
}