【发布时间】:2016-08-27 17:53:00
【问题描述】:
如何让 WebGl 依次应用多个程序,例如
- 画一些东西
- 将其转换为黑白
在这个示例中,很容易将所有内容放在一个着色器中,但我希望能够将它们分开,以便更大的着色器可重用。
到目前为止,我已经完成了一次传球
gl = canvas.getContext("webgl");
gl.viewport(0, 0, canvas.width, canvas.height);
fragmentShader = attachShader(fragmentShaderCode, gl, gl.FRAGMENT_SHADER);
vertexShader = attachShader(vertexShaderCode, gl, gl.VERTEX_SHADER);
program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
gl.useProgram(program);
// attach textures and variables
gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0);
而且我不确定如何有效地添加第二遍并从第一遍中获取输入。我最好的猜测是使用第二个画布,将第一个画布作为纹理输入。但这听起来像渲染两次,这并不好。
【问题讨论】:
标签: javascript webgl post-processing