如何将vec2& vec3变量与OpengGL片段着色器绑定?

时间:2017-03-22 07:26:00

标签: java android opengl-es

我正在开发一个Android OpenGL ES应用程序,这是我的片段着色器片段:

{{1}}

我的问题是我想用上面的GLSL的vignetteCenter和vignetteColor绑定一个变量,我不知道那种类型的Java Type对象对应vec2和vec3? GLES20.glUniform2f或GLES20.glUniform2fv,我应该使用哪一个?

1 个答案:

答案 0 :(得分:1)

reader()将允许您将一个2个浮点数向量分配给统一变量。

GLES20.glUniform2f将允许您将2个浮点数的N个向量分配给统一变量。

因此,给定两个浮点数f1和f2,您可以使用

GLES20.glUniform2fv

GLES20.glUniform2f(myVariablePosition,f1,f2);

其中1表示只传递1个2浮点数的向量。

如果你想传递2个浮点数的向量数组,那么你可以这样做:

float[] myVector = {f1,f2};
GLES20.glUniform2f(myVariablePosition,1,myVector);