OpenGL glsl:无法将数据从程序传递到着色器

时间:2013-04-21 19:20:50

标签: opengl glsl shader

我正在编写一个程序,它将数据从C ++程序中的函数发送到顶点着色器。程序ID按如下方式传递给函数:

void setUpOrtho(GLuint program) {
    glUseProgram( program );
    GLint myUniformLocation = glGetUniformLocation( program, "sx" );
    glUniform1f( myUniformLocation, 2.0 );
}

传递给着色器的数据应该是一个参数glsl代码如下:

attribute vec4 vPosition;
uniform float sx;

void main() {
    mat4 M = mat4( sx, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0 );
    gl_Position = M*vPosition;

}

没有任何东西得到渲染。但是,如果我用2.0替换sx,它显示就好了。为什么2.0没有成功地从cpp传递给glsl?

0 个答案:

没有答案