出于某种原因,每次我在CSS片段着色器中声明自定义变量时,着色器都会停止工作。我不知道为什么会出现这种情况,因为我非常确定语法是否正确。
这是我的HTML代码和我的CSS:
#holder{
width:600;
height:600;
-webkit-filter :custom(url(v.vs) mix(url(f2.fs) multiply source-over), 20 20);
}
...
...
<div id="holder"></div>
这是我的片段着色器f2.fs:
void main()
{
uniform float time;//remove this line and the shader will work!
css_MixColor = vec4(0.738, 0.821, 0.321, 1.0);
css_ColorMatrix = mat4(1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1 );
}
我还尝试uniform float
或float
而不是vec4 test = vec4(1,1,1,1);
,但无论我做什么,每次尝试声明自定义变量时都不会应用着色器。有什么想法吗?
答案 0 :(得分:0)
我不熟悉CSS中的着色器,但在WebGL中,您必须在uniform
之外的顶层声明main
。