2017-11-27 3 views
1

Code of rippleShader.frag Datei:Ist in diesem Shader-Code etwas falsch?

// 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); 
} 

Code of vertShader.vert Datei:

#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; 
} 

Bitte meine Entschuldigung akzeptieren, ich jetzt das Bild nicht veröffentlichen können. Aber wenn ich das Programm ausführen, die einen Fehler promt wie folgt:

image

+2

Geben Sie die Fehlermeldung als Text ein – klutt

Antwort

6

Die Fehlermeldungen bedeutet, dass Sie keinen Wert auf die Variable vTexCoord zuzuordnen sind erlaubt, weil es ein Eingang zu dem Fragment-Shader ist .

Code ändern irgendwie wie folgt aus:

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); 
} 

Hinweis, Sie die Warnmeldung erhalten, weil Sie einen integralen konstanten Wert (1) verwendet, anstelle eines Fließkommawert (1.0).

+0

Vielen Dank :) –