Yesterday I was wondering if an Arduino Uno could run some 2d shaders in a 3110 nokia screen (monochrome).

But before all, I want to know understand how they work.

Note: I want theory; ideas. Not how it works in each language.

  • \$\begingroup\$ What shader language? GLSL? HLSL? \$\endgroup\$ Dec 23, 2015 at 13:56

1 Answer 1


Shaders are a programmable step in the graphics pipeline of whatever rendering technology you're working with. There are several types including Vertex shaders, Tesselation shaders, Geometry shaders, and Fragment shaders.

The term "shader" is misleading because they can serve a much broader purpose than working with lights and shadows ("shade" kind of implies that). This could include manipulating 3d geometry and projecting vertices to a 2d viewport.

The fragment shader is what you might refer to as a "2D shader". A fragment is basically an X,Y position on the window, a depth value (because it's usually coming from a 3d vertex), plus all the interpolated data from previous stages. You can read more about them here.


Not the answer you're looking for? Browse other questions tagged .