我必须使用它的参数公式绘制一个球体(我已经做到了)。
我还必须生成一个具有与顶点一样多的值的数组(我也设法做到这一点)。值的范围应在0.95至1.05之间。
我必须将此数组作为一个均匀的数组传递给顶点着色器,并且必须将球体的每个顶点与数组中的相应值相乘(这将创建一个看起来像地球的球体)。
问题是我似乎无法均匀地传递数组,即使可以,我也不明白如何从必须与之相乘的数组中选择相应的值。
in vec3 pos;
in vec3 col;
uniform float arr[];
out vec3 out_col;
uniform mat4 mtr;
void main()
{
gl_Position = mtr * vec4(pos, 1) * vec4(arr[someIndex], 1);
out_col = col;
}
arr []是包含每个顶点的值的数组。 pos是当前顶点,col是当前颜色。 someIndex应该是什么?如何将数组统一传递?