我试图了解如何在以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/

10-13 04:38