为每个顶点将1个浮点从数组传递到顶点着色器

时间:2019-05-10 18:18:30

标签: c++ opengl glsl

我必须使用它的参数公式绘制一个球体(我已经做到了)。

我还必须生成一个具有与顶点一样多的值的数组(我也设法做到这一点)。值的范围应在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应该是什么?如何将数组统一传递?

0 个答案:

没有答案
相关问题