GLSL: Difference between revisions

No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
OpenGL Shading Language (GLSL) is the shader language used in OpenGL and WebGL.
OpenGL Shading Language (GLSL) is the shader language used in OpenGL and WebGL.
Note that there are multiple versions of OpenGL such as 3, 4, ES


==Usage==
==Usage==
===Vertex Shader===
In the vertex shader, you position vertices by projecting them from object coordinates to camera coordinates. 
This is typically done by multiplying each vertex position, passed as an attribute, with the MVP matrices, passed as a uniform.
Oftentimes you will also want to pass the UV coordinates to the fragment shader as a varying.
===Fragment Shader===
In the fragment shader, you will typically sample a base color and apply lighting to your object.
Sampling is typically done with <code>texture2D</code> which returns an interpolated and mipmaped color from your <code>sampler2D</code> texture.


==Pipeline==
==Pipeline==
Line 31: Line 42:
This shader outputs pixel color values based on information stored in each triangle.   
This shader outputs pixel color values based on information stored in each triangle.   
It runs once per pixel.
It runs once per pixel.
==Resources==
===Reference cards===
* [https://www.khronos.org/files/opengl45-quick-reference-card.pdf OpenGL 4.5 Reference card]
* [https://www.khronos.org/opengles/sdk/docs/reference_cards/OpenGL-ES-2_0-Reference-card.pdf OpenGL ES 2.0 Reference card]
* [https://www.khronos.org/assets/uploads/developers/presentations/opengles31-quick-reference-card.pdf OpenGL ES 3.1 Reference card]
* [https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf WebGL 1.0 Reference card]
* [https://www.khronos.org/files/webgl20-reference-guide.pdf WebGL 2.0 Reference card]
[[Category:Programming languages]]
[[Category:GPU Programming languages]]