出于某种原因,每次我在 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 );
}
我还尝试了 float
或 vec4 test = vec4(1,1,1,1);
而不是 uniform float
,但是无论我做什么,着色器都不会在我每次尝试声明自定义变量时都得到应用。有什么想法吗?
最佳答案
我不熟悉 CSS 中的着色器,但在 WebGL 中,你必须在 main
之外的顶层声明你的 uniform
。
关于css - 如何在 CSS 自定义片段着色器中正确声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16077081/