Jump to content
  • Advertisement
Sign in to follow this  

Vertex shader texture lookup problem

This topic is 3237 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I have a problem reading texture values from vertex shader. Basicly, I try to read positions from a texture and assign the value as position as the vertex position. (in vertex shader) here is a part of my display: ------------------------------------------------------------------------------------- glBegin(GL_POINTS); for(int i=0; i<CURR_Particle; i++) glVertex3f((int)i/(TEXSIZE),i%(TEXSIZE),0.0); glEnd(); ------------------------------------------------------------------------------------- vertex shader: ------------------------------------------------------------------------------------- uniform sampler2D render_position_tex; void main(void){ vec2 normalized_coor; vec2 coor = gl_Vertex.xy; float texSize = 256.0; normalized_coor.x = (coor.x / texSize) + (1.0/(texSize*2.0)); normalized_coor.y = (coor.y / texSize) + (1.0/(texSize*2.0)); vec4 particle_position = texture2D(render_position_tex, normalized_coor); gl_Position = gl_ModelViewProjectionMatrix * particle_position; } ------------------------------------------------------------------------------------- and fragment shader : ------------------------------------------------------------------------------------- void main(void) { gl_FragColor = gl_Color; } ------------------------------------------------------------------------------------- The values in texture is either x,y,0,1.0 or 0,0,0,0. x and y are different for each texel. What I get as a result is only two points one at origin and other somewhere else unrelated(or I think it is unrelated). I think I am correctly setting up the uniform so why is all the texture lookup return only two values Btw. I am running on NVIDIA 9600GT. I setup the texture as ------------------------------------------------------------------------------------- glActiveTexture(textureunit); glBindTexture(GL_TEXTURE_2D, texID); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA32F_ARB , TEXSIZE, TEXSIZE, 0, GL_RGBA, GL_FLOAT, 0); ------------------------------------------------------------------------------------ Thanks in advance.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!