WebGL:如何使片段着色器中的颜色随时间变化?

WebGL:如何使片段着色器中的颜色随时间变化?,webgl,Webgl,我对webgl比较陌生:我想知道如何配置/设置片段着色器,使其根据当前经过的时间更改颜色。如果GLSL(着色器代码)部分不清楚,那么最好从查看示例和在or中进行实验开始 它基本上只是将着色器的输出,gl\u FragColor设置为一个值,该值取决于一个统一变量(统一表示所有处理的片段都相同) 可以从javascript中设置统一值,方法是首先检索统一变量的位置,然后在每次需要更改它时将其设置为一个值(对于您来说,它将是每次绘制帧时)。本示例假设您已经有一个已编译和链接的webgl程序 var

我对webgl比较陌生:我想知道如何配置/设置片段着色器,使其根据当前经过的时间更改颜色。

如果GLSL(着色器代码)部分不清楚,那么最好从查看示例和在or中进行实验开始

它基本上只是将着色器的输出,
gl\u FragColor
设置为一个值,该值取决于一个统一变量(统一表示所有处理的片段都相同)

可以从javascript中设置统一值,方法是首先检索统一变量的位置,然后在每次需要更改它时将其设置为一个值(对于您来说,它将是每次绘制帧时)。本示例假设您已经有一个已编译和链接的webgl程序

var program = yourProgram;
var uniformNameInShader = "time";
var location = gl.getUniformLocation( program, uniformNameInShader );

function drawLoop ( ) {
    gl.uniform1i( location, Date.now() );
    render();
}

但老实说,你可能想从a开始,因为。。。你知道的。。。研究工作和材料

感谢回复和链接:)我尝试了,但我得到了:GL错误:GL_无效_操作:glUniform1i:类型的统一函数错误,我在着色器中定义了:统一浮点时间?!