abcdeef
Posts: 1
Joined: Fri Feb 12, 2016 7:20 pm

vertex shader

Fri Feb 12, 2016 8:02 pm

Hi,
i try to render a quad with MVP-Matrix and an offset:

Code: Select all

    precision mediump float;       
    uniform mat4 u_mvpMatrix;      
    uniform vec2 u_offset;         
    attribute vec4 a_position;    
    attribute vec2 a_texCoord;     
    varying vec2 v_texCoord;       
    void main()                    
    {                              
       gl_Position   =a_position;  
       gl_Position.x-=u_offset.x;  
       gl_Position  *=u_mvpMatrix; 
       v_texCoord = a_texCoord;    
    }                              
run the opengl-code on X11 + SDL it looks right:
Image

under raspberry pi2 without x the quad didn't apear.

but when i remove the MVP-Matrix multiplacation:

Code: Select all

    precision mediump float;       
    uniform mat4 u_mvpMatrix;      
    uniform vec2 u_offset;         
    attribute vec4 a_position;    
    attribute vec2 a_texCoord;     
    varying vec2 v_texCoord;       
    void main()                    
    {                              
       gl_Position   =a_position;  
       gl_Position.x-=u_offset.x;  
       //gl_Position  *=u_mvpMatrix; 
       v_texCoord = a_texCoord;    
    }                              
it looks so:
Image

or without the offset

Code: Select all

    precision mediump float;       
    uniform mat4 u_mvpMatrix;      
    uniform vec2 u_offset;         
    attribute vec4 a_position;    
    attribute vec2 a_texCoord;     
    varying vec2 v_texCoord;       
    void main()                    
    {                              
       gl_Position   =a_position;  
       //gl_Position.x-=u_offset.x;  
       gl_Position  *=u_mvpMatrix; 
       v_texCoord = a_texCoord;    
    }                              
it looks:
Image

why can't i use MVP-Matrix mulltiplication and offset together?

p.s.: my draw-function:

Code: Select all

 glUseProgram ( userData->programObject );
  
  glUniformMatrix4fv( userData->mvpLoc, 1, GL_FALSE, (GLfloat*) &userData->mvpMatrix.m[0][0] );
  glUniform2f(userData->offsetLoc, 0.5, 0.0);
glVertexAttribPointer ( userData->positionLoc, 3, GL_FLOAT, GL_FALSE, 0, userData->vertices );
  glVertexAttribPointer ( userData->texCoordLoc, 2, GL_FLOAT, GL_FALSE, 0, userData->texCoord );

    glDrawArrays  ( GL_TRIANGLE_STRIP, 0, 4);

Return to “OpenGLES”