在C中,我可以调试代码:
fprintf(stderr, "blah: %f", some_var);
Run Code Online (Sandbox Code Playgroud)
在GLSL中......无论如何我只是在Vertex或Fragment着色器中转储一个值?我不在乎它是否缓慢; 我只想转出价值.理想情况下,我想要一个如下设置:
这可行吗?(我不关心性能;我只是想为一帧做这个).
谢谢!
Unc*_*eiv 23
不幸的是,这不可能直接.一个可能的解决方案,我最终使用了很多(但我确信它在GLSL开发人员中很常见)是将"打印"值作为颜色,代替您预期的最终结果.
当然这有很多局限性; 首先,您必须确保您的值映射到一个(0,1.0)范围内.在这些情况下mod,函数as fract等变得有用.但是,一般来说,这就是我在GLSL中看到的"printf"等价物.