2016-11-14 12 views
1

WebGLシェーダから実行時例外をスローする方法はありますか?シェーダには例外をサポートしないCのフレーバが書かれているので、これは簡単ではないと思います。WebGLから例外をスローする

ゼロ除算を挿入しましたが、これらは '定数フォールディング'中に警告としてフラグが立てられますが、実行時に発生するとは思われません。

無効なランタイム値で実行を停止する方法に関する巧妙なアイデアはありますか?理想的には、エラーが発生した行を示します。

コンテキストは、無限大を許容する拡張複合平面上で計算を行っていますが、一部の操作(たとえば0/0)。

答えて

2

WebGLまたは他のグラフィック APIを使用していない可能性があります。 シェイダーに関しては、「ランタイムエラー」などのようなものはありません。「未定義」動作のみがあります。

ランタイムフィードバックを行う唯一の方法は、フラグメントシェーダで数学を行っていると仮定して、検証をバックバッファまたはテクスチャにカラーコードすることです。さもなければあなたは不運になり、GPGPUのために実際に作られたAPI、すなわちOpenCLとCudaを調べたいかもしれません。

関連する問題