如何在CSS自定义片段着色器中正确声明变量?

时间:2013-04-18 07:35:36

标签: css css3 webkit webgl fragment-shader

出于某种原因,每次我在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 floatfloat而不是vec4 test = vec4(1,1,1,1);,但无论我做什么,每次尝试声明自定义变量时都不会应用着色器。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不熟悉CSS中的着色器,但在WebGL中,您必须在uniform之外的顶层声明main