2017-11-27 8 views
1

코드 :이 셰이더 코드에 문제가 있습니까? rippleShader.frag 파일의

// attibutes from vertShader.vert 
varying vec4 vColor; 
varying vec2 vTexCoord; 

// uniforms 
uniform sampler2D uTexture; 
uniform float uTime; 

void main() { 
    float coef = sin(gl_FragCoord.y * 0.1 + 1 * uTime); 
    vTexCoord.y += coef * 0.03; 
    gl_FragColor = vColor * texture2D(uTexture, vTexCoord); 
} 

코드 vertShader.vert 파일 :

#version 110 

//varying "out" variables to be used in the fragment shader 
varying vec4 vColor; 
varying vec2 vTexCoord; 

void main() { 
    vColor = gl_Color; 
    vTexCoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).xy; 
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 
} 

내 사과를 받아주세요, 지금 이미지를 게시 할 수 없습니다. 그러나 나는 다음과 같은 오류의 PROMT을 프로그램을 실행하면

image

+2

대신 텍스트로 오류 메시지 게시 – klutt

답변

6

오류 메시지 수단는 프래그먼트 쉐이더의 입력이기 때문에 당신이 변수 vTexCoord에 어떤 값을 할당 할 수 없습니다 것을 .

은 다음과 같이 어떻게 든 코드를 변경

:

void main() { 
    float coef = sin(gl_FragCoord.y * 0.1 + 1.0 * uTime); 
    vec2 texC = vec2(vTexCoord.x, vTexCoord.y + coef * 0.03); 
    gl_FragColor = vColor * texture2D(uTexture, texC); 
} 

참고하면 경고 메시지가, 당신이 대신 부동 소수점 값 (1.0)의, 중요한 상수 값 (1)를 사용하기 때문이다.

+0

정말 고마워요 :) –