Javascript 如何在webgl着色器中console.log?

Javascript 如何在webgl着色器中console.log?,javascript,opengl-es,glsl,webgl,Javascript,Opengl Es,Glsl,Webgl,我试图理解如何在用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

我试图理解如何在用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>

真空总管(真空)
{ 
//console.log在这里不起作用,因为它是GLSL而不是javascript
gl_FragColor=vec4(0.0,0.0,0.0,1.0);
} 

有什么建议吗?

不确定这是否可行,但您可能需要检查以进行调试。

目前,除了通过特定结果(屏幕/图像颜色)外,没有已知的方法从WebGL中的GLSL输出数据。
除非您已经这样做了,否则我建议您退房,这也可能对您有用。

编译着色器后,您可以执行以下操作:

if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
    alert(gl.getShaderInfoLog(shader));
}
它会在编译过程中显示任何错误消息。 GLSL不能以帧缓冲区/纹理以外的任何其他形式将数据发送回程序,所以只能通过检查输出颜色来检查发生了什么。
正如Michael所指出的,WebGL inspector可能对我很有用,但对于着色器来说并不是那么有用,但对于WebGL应用程序的一般调试来说,这应该是公认的答案。由于这个原因,我已经将$@#从一个严重的着色器错误中记录下来。谢谢你。