Vertex shader

Hi , im trying to learn shaders but im finding it difficult due to the lack of tutorials and the complexity and lack of explanation with the ones that are up on various websites. I was wandering if anyone either new of some tutorials or could run me through a few things. I am simply trying to make a shader that performs the transformations on a 2d object in a 2d space , so a rotation on the z axis and translation.

There are allot of good tutorials. I made the mistake of looking in the wrong place. Searching for something like “LWJGL shaders” will give you… not very many options. Its better to just google “GLSL” (Game library shader language) than to look for LWJGL shaders.

C++'s openGL is ALLOT like javas. So looking for some C++ tutorials are still easy to port to LWJGL:

-C++
Lighthouse3D has some insane tutorials:
http://www.lighthouse3d.com/opengl/glsl/

A good NeHe one here:
http://nehe.gamedev.net/article/glsl_an_introduction/25007/

And a bit more complex here:
http://joshbeam.com/articles/getting_started_with_glsl

-Java
Were I learnt mine:
http://www.lwjgl.org/wiki/index.php?title=GLSL_Tutorial:_Syntax

Some awesome tutorials from Oskar:

Anouther one about lighting:

[quote]Its better to just google “GLSL” (Game library shader language)
[/quote]
Its actually “Graphics Library …” since OpenGL is Open Graphics Library.

Ok so ive looked and most of the stuff inside the shaders seems fine however How do I send data to the shader Per Vertex for its new coordinates or rotation.

Take a look at vertex attributes.

Another very good walk-through for OpenGL shaders (amongst other things): http://www.arcsynthesis.org/gltut/

So I understand about sending the attributes to the shader by firstly setting the location and then querying it. Im a bit stuck on how I would send data for each vertex, so say I have a square with v1,v2,v3,v4 and I want to transform each vertex by vector vc5 how would I bind Vc5 for v1v2v3v4 only but not any other vertex.

Or is there a way to do it outside of a shader but still on the GPU such as glmatrix multiplication but would I need to put these into a new vao each time.

Ive figured it out thanks to the well scripted and documented mercury engine files. No worry nothing is copied I just need to understand exactly how opengl functioned.