我试图了解如何在以GLSL编写的webgl着色器中模拟console.log。收到错误消息很容易,但是我却不知道如何打印自定义消息。
基本上,我想在浏览器的控制台中打印内容:
<script id="shader-fs1" type="x-shader/x-fragment">
void main(void)
{
//console.log doesn't work here since it's GLSL not javascript
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
}
</script>
有什么建议么?
最佳答案
编译着色器后,您可以执行以下操作:
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
alert(gl.getShaderInfoLog(shader));
}
并且它将在编译过程中向您显示任何错误消息。
GLSL不能以帧缓冲/纹理以外的任何其他形式将数据发送回程序,因此您只能通过检查输出颜色来检查正在发生的情况。
正如Michael所指出的,WebGL检查器可能对我有用,但对于着色器而言却没什么用,但对于WebGL应用程序的常规调试来说却没什么用
关于javascript - 如何在webgl着色器中进行console.log?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17396929/