RenderingPipeline

from geometry to pixels

Shader Model and GLSL versions

When reading articles about graphics programming you come alone the term ‘Shader Model’ and version numbers for GLSL, OpenGL and Direct3D (depending on the API used in the article). While the described algorithms (nearly always) can be implemented in the ‘other’ API as well the different versioning schemes can be confusing – what OpenGL version and GLSL version do I need to implement this ‘Shader Model 4.0′ technique?

Note that you can’t always find an exact match for each version in the other API so take this chart with a grain of salt, its intension is to give you a rough overview of which API versions have a similar enough feature set to implement similar algorithms.

 

OpenGL GLSL Direct3D Shader Model
2.1 120 9.0 2.0
3.3 330 10.0 4.0
4.2 420 11.0 5.0

 

The Shaders itself are also called differently (but serve the same purpose):

OpenGL Direct3D
Vertex Shader Vertex Shader
Tessellation Control Shader Hull Shader
Tessellation Evaluation Shader Domain Shader
Geometry Shader Geometry Shader
Fragment Shader Pixel Shader
Compute Shader Compute Shader

 

Here’s a complete list of GLSL versions and the corresponding OpenGL versions (thank god the ARB changed the versioning scheme with OpenGL 3.3!):

OpenGL #version latest spec version number Note
2.0 1.10.59
2.1 120 1.20.8
3.0 130 1.30.10
3.1 140 1.40.08
3.2 150 1.50.11 added Geometry Shaders
3.3 330 3.30.6
4.0 400 4.00.9 added both Tessellation Shaders
4.1 410 4.10.6
4.2 420 4.20.11
4.3 430 4.30.6  added Compute Shaders

Shaders in OpenGL were available even earlier thru extensions, early extensions were defined for OpenGL 1.3.

Also a more complete overview for Direct3D:

Direct3D Shader Model Note
8.0 1.0 – 1.3
8.1 1.4 (PS) / 1.1 (VS)
9.0 2.0
9.0c 3.0
10.0 4.0 added Geometry Shaders
10.1 4.1
11.0 5.0 added Domain & Hull Shaders

 

Update 8/6/12: added OpenGL 4.3

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*