我对webgl很新:我想知道如何配置/设置片段着色器,以便根据当前传递的时间来改变颜色。
答案 0 :(得分:2)
如果GLSL(着色器代码)部分不清楚,最好先查看示例并在GLSL Sandbox或Shader 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,因为......你知道......研究工作和事情......