Opengl 3.3以上对应DX10以上,对应Shader Model4.0以上,GLSL版本3.3以上。
OpenGL 3.3以上的,Opengl版本和GLSL版本一致,例如:Opengl4.1和GLSL4.1一致。
1.2009/2012-至今win7/win8时代,Opengl 4.3(2012)也就是GLSL4.3对应D3D的Shader Model5.0 DX11-11.1-11.2,Opengl 4.4,4.5(2013-2014)也应该匹配DX11的Shader Model5.0。DX12的Shader Model5.1 应该没有最新的Opengl对应(opengl 还没有跟上Win10 2015时代)。
D3D的Shader Model4.0 DX10-10.1是在2006 win vista以上电脑的,相当于GLSL3.3版本也就是Opengl3.3,Opengl3.2用GLSL1.5也相当于shader model4.0。
2.2005-2009 win vista时代,Opengl 3.2-3.3(2009-2010)用GLSL1.5也相当于Shader Model4.0,DX10。
3.2001-2006 win xp时代,Opengl 3.0-3.1(2008-2009)的用GLSL 1.3-1.4 接近于Shader Model3.0 DX9.0c, Opengl 3.0用GLSL 1.3。
Shader Model 3,GLSL用1.3也就是Opengl3.0,很多匹配不上DX的Shader Model 2和3。
4. 2001-2006 win xp时代,Opengl 2.1用GLSL1.2(2006)对应DX9 Shader Model2.0, Opengl2.0 GLSL用1.1。
Opengl技术当前没有DX发展得迅速,当前扮演一个追随者的角色,但是本身的跨平台移动设备和大型机设备上的图形依然广泛应用。当前的win7电脑中还是安装的Opengl3.1.0也就是2009年的Opengl版本,用GLSL1.4类似DX shader model 2.0-3.0这样。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?