2016-11-14 71 views
1

有没有什么办法从WebGL着色器抛出运行时异常?由于着色器被写入一个不支持异常的C语言,我想这并不容易。从WebGL抛出异常

我已经插入被零除错误,但这些被标记为'常量折叠期间警告',但我不相信在运行时发生。

有关如何停止对无效运行时值执行的任何巧妙想法?理想情况下,指示错误发生在哪条线上......

上下文是我在扩展复数平面上进行数学运算,该平面允许无穷大但不允许某些操作(如0/0)。

回答

2

这是不可能的,不使用WebGL或任何其他图形 API。 就着色器而言,没有像“运行时错误”这样的事情,只有“未定义”的行为。

执行运行时反馈的唯一方法是将您的验证颜色编码到后缓冲区或纹理中,假设您正在片段着色器中进行数学运算。否则,你的运气不佳,可能需要查看实际为GPGPU制作的API,即OpenCL和Cuda。