2013-07-01 28 views
11

GLSLで書かれたwebglシェーダのconsole.logをシミュレートする方法を理解しようとしています。エラーメッセージは簡単に取得できますが、カスタムメッセージの印刷方法はわかりません。webglシェーダでconsole.logを実行する方法は?

基本的に私は、ブラウザのコンソールで何かを印刷したい:

<script id="shader-fs1" type="x-shader/x-fragment"> 
    void main(void) 
    { 
    //console.log doesn't work here since it's GLSL not javascript 
    gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); 
    } 
</script> 

任意の提案ですか?

答えて

1

現在、目的の結果(画面/イメージの色)を除いて、WebGLのGLSLからデータを出力する方法は知られていません。 既にあなたがLearning WebGLをチェックアウトすることをお勧めしない限り、kick.jsもお役に立ちます。

if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { 
    alert(gl.getShaderInfoLog(shader)); 
} 

そして、それはコンパイル時にあなたにすべてのエラーメッセージが表示されます:あなたのような何かを行うことができシェーダをコンパイルした後

3

。 GLSLは、framebuffer/texture以外の他の形式でプログラムにデータを返すことができないので、出力カラーを調べることによって、何が起きているかチェックすることができます。 WebGLインスペクタはマイケルが指摘しているように便利かもしれませんが、シェーダではあまり役に立ちませんが、webGLアプリケーションの一般的なデバッグには役に立ちます

関連する問題