V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rabbbit
V2EX  ›  问与答

有办法调试 GLSL(WebGL)程序吗,例如打印变量值?

  •  
  •   rabbbit · 2018-01-13 14:01:04 +08:00 · 3016 次点击
    这是一个创建于 2491 天前的主题,其中的信息可能已经有所发展或是发生改变。
    4 条回复    2018-01-13 18:54:26 +08:00
    zwo
        1
    zwo  
       2018-01-13 17:25:26 +08:00   ❤️ 1
    direct x 才可以,opengl 调试很麻烦,一般是通过片段着色器的颜色输出来做标记,有一些第三方工具如 renderDoc 可以捕捉一帧的渲染管线过程以及 VBO 等数据,但是对 glsl 里面的变量也无能为力。
    YyYyYyy
        2
    YyYyYyy  
       2018-01-13 18:42:51 +08:00   ❤️ 1
    我就记得我在哪里看过一种打印变量的黑魔法,搜了半天才找到:
    https://github.com/FreeBlues/ShaderDebugger

    作者的 blog 教程:
    http://www.cnblogs.com/freeblues/p/5724774.html
    http://www.cnblogs.com/freeblues/p/5724833.html
    xmadi
        3
    xmadi  
       2018-01-13 18:44:33 +08:00 via iPhone
    没有
    YyYyYyy
        4
    YyYyYyy  
       2018-01-13 18:54:26 +08:00
    此外,你想打印变量也是为了学习管线或是实际项目的 debug。
    Nvidia 的 Nsight 是我所知最好用的,但是不知道现在的版本支不支持 WebGL+浏览器的环境...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:55 · PVG 09:55 · LAX 17:55 · JFK 20:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.