Sign in to follow this  
robee00

[GLSL] Simple lighting shader not working

Recommended Posts

robee00    206

Hello!

 

For now, I used OGL in fixed function mode. But now I want to learn the programmable pipeline now.

 

I tried to implement a simple diffuse - specular lighting shader from http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/directional-lights-per-pixel/ . But I got wierd results (picture attached)

 

I uploaded my code to pastebin:

 

- Rendering: http://pastebin.com/cUDtHcWJ

 

- Vertex shader: http://pastebin.com/hE8s3KE7

 

- Fragment shader: http://pastebin.com/pVpr6zhR

 

And if I move my camera further the object, it gets brighter. Something I had to do with the position right?

Share this post


Link to post
Share on other sites
shazen    291

What I notice is that you only have 16 vertices available in your vertex buffer. To make a cube you need 24.

 

Each corner has 3 faces meeting all with different normal directions. Since you need a unique normal for each triangle then you need 3 vertices per corner. 3 x 8 = 24.

Edited by shazen

Share this post


Link to post
Share on other sites
robee00    206

Oops, I forgot to add that I left out the top and bottom sides. But okay, I'll try to rewrite that, and include the top and bottom sides

Edited by RobeeZ

Share this post


Link to post
Share on other sites
robee00    206

Okay, so I reduced it to render just one plane. And I found an other tutorial: http://www.rastertek.com/gl40tut06.html

 

I use EXACTLY the same shaders, and I use exactly the same position, and normals. But I got a black triangle instead of a yellow one. Looks like intensity is always zero.

 

The class of what I'm rendering: http://pastebin.com/ez5K9vN3

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this