anchor.diff:  
   == Shaders Basics
   
  -Shaders are sets of instructions that are executed on the GPU. They are used to take advantage of hardware acceleration available on the GPU for rendering purposes. 
  -
  -This paper only covers Vertex and Fragment shaders because they are the only ones supported by JME3 for the moment. Be aware that there are some other types of shaders (geometry, tessellation,…). 
  +Shaders are sets of instructions that are executed on the GPU. They are used to take advantage of hardware acceleration available on the GPU for rendering purposes.
  +
  +This paper only covers Vertex and Fragment shaders because they are the only ones supported by JME3 for the moment. Be aware that there are some other types of shaders (geometry, tessellation,…).
   
   There are multiple frequently used languages that you may encounter to code shaders but as JME3 is based on OpenGL, shaders in JME use GLSL and any example in this paper will be written in GLSL.
   
   
   === How Does it work?
   
  -To keep it Simple: The Vertex shader is executed once for each vertex in the view, then the Fragment shader (also called the Pixel shader) is executed once for each pixel on the screen. 
  -
  -The main purpose of the Vertex shader is to compute the screen coordinate of a vertex (where this vertex will be displayed on screen) while the main purpose of the Fragment shader is to compute the color of a pixel. 
  -
  -This is a very simplified graphic to describe the call stack: 
  -
  -image:jme3/advanced/jme3andshaders.png[jme3andshaders.png,width="",height="", align="left] 
  +To keep it Simple: The Vertex shader is executed once for each vertex in the view, then the Fragment shader (also called the Pixel shader) is executed once for each pixel on the screen.
  +
  +The main purpose of the Vertex shader is to compute the screen coordinate of a vertex (where this vertex will be displayed on screen) while the main purpose of the Fragment shader is to compute the color of a pixel.
  +
  +This is a very simplified graphic to describe the call stack:
  +
  +image:jme3/advanced/jme3andshaders.png[jme3andshaders.png,width="",height="", align="left]
   
   The main program sends mesh data to the vertex shader (vertex position in object space, normals, tangents, etc..). The vertex shader computes the screen position of the vertex and sends it to the Fragment shader. The fragment shader computes the color, and the result is displayed on screen or in a texture.
   
  
positive.code: 
  ----
  
  You can also pass some define to your vertex/fragment programs to know if an uniform as been declared. 
  
  You simply add it in the Defines section of your Technique in the definition file.
  
  
negative.code: 
  === JME3 and OpenGL 3 & 4 compatibility
  
  GLSL 1.0 to 1.2 comes with built in attributes and uniforms (ie, gl_Vertex, gl_ModelViewMatrix, etc…). Those attributes are deprecated since GLSL 1.3 (opengl 3), hence JME3 global uniforms and attributes.
  
  Here is a list of deprecated attributes and their equivalent in JME3.
  
  