• Advertisement
Sign in to follow this  

GLSL shader problem

This topic is 1734 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

My shader program is clearly not computing vectors correctly, because I get these results:

 

NO Shader(fixed-function):

2d27zfn.jpg

 

Shader

2eeii9x.jpg

 

This is a plain diffuse shader that is supposed to create a green diffuse on the object:

.vert

 

varying vec3 vertex_light_position;

varying vec3 vertex_light_half_vector;

varying vec3 vertex_normal;

varying vec4 color;

varying vec3 N;

varying vec3 v;
 void main(void)

   {

      v = vec3(gl_ModelViewMatrix * gl_Vertex);

      N = normalize(gl_NormalMatrix * gl_Normal);
      color = gl_Color;

      vertex_normal = normalize(gl_NormalMatrix * gl_Normal);

      vertex_light_position = normalize(gl_LightSource[0].position.xyz);

      vertex_light_half_vector = normalize(gl_LightSource[0].halfVector.xyz);

     

      gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;

   }

 

.frag

 

varying vec3 vertex_light_position;

varying vec3 vertex_light_half_vector;

varying vec3 vertex_normal;

varying vec4 color;

varying vec3 N;

varying vec3 v;
void main()

{ 

   vec3 L = normalize(gl_LightSource[0].position.xyz - v);

   vec3 E = normalize(-v);

   vec3 R = normalize(reflect(-L,N));

  

   vec4 diffuse_color = vec4(0.0,1.0,0.0,0.0);

   float diffuse_value = max(dot(vertex_normal, vertex_light_position), 0.0);
   if (gl_FrontFacing){

       gl_FragColor = color + ((diffuse_color-color) * (diffuse_value));

   }else{

       gl_FragColor = color;

   }
}

 

Im confused, because I get the correct effect on my shader designer:

zwj6h0.jpg

Edited by Shawn619

Share this post


Link to post
Share on other sites
Advertisement

Solved.

 

Changed

float diffuse_value = max(dot(vertex_normal, vertex_light_position), 0.0);

 

to

 

float diffuse_value = max(dot(N, L), 0.0);

Share this post


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

  • Advertisement