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

时间:2015-02-03 01:46:42

标签: webgl

我对webgl很新:我想知道如何配置/设置片段着色器,以便根据当前传递的时间来改变颜色。

1 个答案:

答案 0 :(得分:2)

如果GLSL(着色器代码)部分不清楚,最好先查看示例并在GLSL SandboxShader Toy中进行试验。

基本上只是将着色器的输出gl_FragColor设置为取决于统一变量的值(统一意味着所有已处理的片段都相同)。

可以通过首先检索统一变量的位置然后将其设置为值来设置统一值,每次要更改它时(对于您,每次绘制帧时都是如此)。该示例假设您已经有一个已编译和链接的webgl程序。

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

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

但老实说,你可能希望从learn fundamentals tutorial,因为......你知道......研究工作和事情......