javascript - 如何在 webgl 着色器中使用 console.log?

标签 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 = 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/

相关文章:

glsl - 如何在 GLSL 结构体中初始化数组

opengl - 如何在 GLSL 4.6 中设置统一结构

javascript - 对一个元素调用 .each

javascript - Angularjs 在创建 dom 元素时的性能,纯 js 与 jqlite

ios - opengl es2 预乘与直接 alpha + 混合

javascript - 需要知道要阅读什么才能达到这种效果

iphone - 从捕获的视频帧创建 openGL 纹理以在视频上覆盖 openGL View 的替代方案? (iPhone)

c++ - 了解 GLSL 统一缓冲区 block 对齐

javascript - 可以在不使用 "for=id"的情况下将标签与复选框相关联吗?

javascript - 是否可以暂停 Chrome/Opera 中的 svg 错误