2011-08-13 16 views

答えて

2

テクスチャに行列を配置しないでください。代わりに、均一な配列を使用する必要があります。

uniform mat4 skelMats[X]; 

これらの制服は、必要に応じて塗りつぶすことができます。明らかに、これから得ることができる均一な行列の数には限界がありますが、ほとんどの実装では少なくとも64個の行列をサポートする必要があります。

0
<script id ="VERTEX" type="GL_VERTEX_SHADER"> 

... 

    uniform mat4 theMatrix; 


    void main(void) { 

    gl_Position=.... } 

</script> 

...

<script> 
... 
    var A_Matrix = [ 
        x, 0, a, 0, 
        0, y, b, 0, 
        0, 0, c, d, 
        0, 0, -1, 0 
       ]; 

    var _Matrix=gl.getUniformLocation(program,"theMatrix"); 
       gl.uniformMatrix4fv(_Matrix,false,new Float32Array(A_Matrix)); 
... 
</script> 

あなたが頂点とフラグメントシェーダの両方で

uniform mat4 theMatrix; 

を定義する場合は、あなたが開始してからセットアップマトリックスは、両方のシェーダで使用することができます。