2016-11-14 87 views
1

有沒有什麼辦法從WebGL着色器拋出運行時異常?由於着色器被寫入一個不支持異常的C語言,我想這並不容易。從WebGL拋出異常

我已經插入被零除錯誤,但這些被標記爲'常量摺疊期間警告',但我不相信在運行時發生。

有關如何停止對無效運行時值執行的任何巧妙想法?理想情況下,指示錯誤發生在哪條線上......

上下文是我在擴展複數平面上進行數學運算,該平面允許無窮大但不允許某些操作(如0/0)。

回答

2

這是不可能的,不使用WebGL或任何其他圖形 API。 就着色器而言,沒有像「運行時錯誤」這樣的事情,只有「未定義」的行爲。

執行運行時反饋的唯一方法是將您的驗證顏色編碼到後緩衝區或紋理中,假設您正在片段着色器中進行數學運算。否則,你的運氣不佳,可能需要查看實際爲GPGPU製作的API,即OpenCL和Cuda。