Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 2 of 2

Thread: Texture not animating only shows black model

Hybrid View

  1. #1
    Junior Member Newbie
    Join Date
    Apr 2013
    Posts
    4

    Texture not animating only shows black model

    hey guys I am trying to animate my texture using a bump map however it just comes up as a black model...well kind of dark blue

    Code :
    attribute highp vec3  inVertex;
     
    uniform highp   mat4  MVPMatrix;
    uniform mediump vec3  LightDir;
    uniform mediump vec3  EyePos;
    uniform mediump vec2  inTexCoord;
    uniform mediump vec2 watermovementX;
    uniform mediump vec2 watermovementY;
    uniform mediump vec2 waterSX;
    uniform mediump vec2 waterSY;
     
    varying mediump vec3  EyeDir;
    varying mediump vec2  TexCoord;
    varying mediump vec2  TexCoord2;
    varying mediump vec2  RefCoord;
    varying mediump float WaterToEyeLength;
     
    void main()
    {
    	// Transform position
    	gl_Position = MVPMatrix * vec4(inVertex,1.0);
    	mediump vec2 waterCoord = inTexCoord;
    	TexCoord = waterCoord.xy * waterSX; //this line scales the bump map
    	TexCoord += watermovementX; //this line translates the bump map
    	TexCoord2 = waterCoord.xy * waterSY;
    	TexCoord2 += watermovementY;
     
    	RefCoord = inTexCoord;
    	mediump vec3 WaterToEye = EyePos - inVertex;
    	WaterToEyeLength = length(WaterToEye);
    }

    FRAGMENT

    Code :
    uniform sampler2D  n_mapTex;
    uniform sampler2D  n_mapTex2;
    uniform sampler2D  reflectionTex;
    uniform lowp float distortion;
    uniform lowp vec4  WaterColour;
     
    varying mediump vec2  TexCoord;
    varying mediump vec2  TexCoord2;
    varying mediump vec2  RefCoord;
    varying mediump float WaterToEye;
     
    void main()
    {	
    	//calculate water movement
    	lowp vec3 aNormal = vec3(0.0, 0.0, 1.0);
    	aNormal = texture2D(n_mapTex, TexCoord).xyz;
    	aNormal += texture2D(n_mapTex, TexCoord2).xyz;
    	aNormal -= 1.0;
    	lowp vec2 watermovement = aNormal.st;
    	mediump vec2 texMove = watermovement * (distortion/WaterToEye);
    	gl_FragColor = texture2D(reflectionTex, texMove);
    }

    code to update

    Code :
    waterTran += water_Vel * DT;
    	waterTran = PVRTVec2(	fmod(waterTran.x, 1.0f), fmod(waterTran.y, 1.0f));
    	waterTran2 += water_Vel2 * DT;
    	waterTran2 = PVRTVec2(	fmod(waterTran2.x, 1.0f), fmod(waterTran2.y, 1.0f));
     
     
    	glUniform2fv(m_ShaderProgram.auiLoc[eW_Move],1, &waterTran.x);
    	glUniform2fv(m_ShaderProgram.auiLoc[eWaterS],1, &water_S.x);
    	glUniform2fv(m_ShaderProgram.auiLoc[eW_Move2],1, &waterTran2.x);
    	glUniform2fv(m_ShaderProgram.auiLoc[eWaterS2],1, &water_S2.x);
    	glUniform1f(m_ShaderProgram.auiLoc[eDist], pertubation);

    DT = delta time

  2. #2
    Advanced Member Frequent Contributor
    Join Date
    Mar 2009
    Location
    Singapore
    Posts
    800
    Could you show us the application code where you pass the texture uniforms to the shader. I suspect all of the shader samplers are referring to a single texture unit. I may be wrong though but you need to show us that code bit as well.
    Regards,
    Mobeen

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •