2011-08-13 1 views

답변

2

텍스처에 행렬을 넣지 마십시오. 대신 균일 한 배열을 사용해야합니다.

uniform mat4 skelMats[X]; 

원하는대로 유니폼을 채울 수 있습니다. 분명히 이것에서 벗어날 수있는 균일 한 행렬의 수에는 제한이 있지만 대부분의 구현은 적어도 64 개의 행렬을 지원해야합니다. 당신이 모두에서

uniform mat4 theMatrix; 

에게 다음은 시작에서 설정 한 행렬은 모두 쉐이더에서 사용할 수있는 정점과 프래그먼트 쉐이더를 정의하는 경우

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> 

.