首页 > 解决方案 > 如何将jointMatrix传递给着色器glTF?(java opengles20)

问题描述

我试图弄清楚如何在 Android 上显示 GLTF 文件。

我按照这里的说明做所有事情。

需要将参数float [] []传递给shader

我是这样试的

    //joinMatrix
    float[][] jointmatrix = new float[12][];
    ...
    glUniformMatrix4fv(rs.u_jointMat, 1, false, jointmatrix, 0);

但是 float [] [] 数组不想传输。

...
attribute vec4 a_joint;
attribute vec4 a_weight;

uniform mat4 u_jointMat[12];

...
void main(void)
{
    mat4 skinMat =
        a_weight.x * u_jointMat[int(a_joint.x)] +
        a_weight.y * u_jointMat[int(a_joint.y)] +
        a_weight.z * u_jointMat[int(a_joint.z)] +
        a_weight.w * u_jointMat[int(a_joint.w)];
    vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);
    gl_Position = u_projectionMatrix * pos;
}

请告诉如何将 u_jointMat 传递给着色器 glTF?

标签: javaandroid-studioopengl-es-2.0vertex-shadergltf

解决方案


推荐阅读