0
votes

I'm implementing armature animation in OpenGL, and the only method for doing this that I have found is using the Vertex Shader, transforming the model vertices by the bone transform matrices.

I'm familiar with the Fragment Shader, but up until now I have only used it for trivial stuff that, should shaders not be available, the game will still run without loading it. If I use the Vertex Shader however, there will be no fallback. People without shader support will be stuck (or at least, the characters on their screen will be stuck)

Are Vertex Shaders widely supported? Are there any platforms/hardware/etc where they would not be available, or would be too slow for this purpose? (Laptops, older computers, older OSes, etc?)

I'm mostly concerned with making the game as widely available as possible. (That said though, using the shader seems to be the easiest method, not sure how it could be done efficiently using OpenGL's pipeline.)

1
Fragment shaders rely on vertex shaders. If you code uses fragment shaders, then vertex shaders will be supported too.rhughes
@rhughes - aye. I only ever used it for trivial effects though, so if there's no support, it just runs without it. Using the vertex shader for this would make make running without shaders no longer possible.Anne Quinn
Vertex shaders are easily emulated CPU-side if the backward-compatibility really matters. But, like we have found out, this will not be an issue.Steven Lu

1 Answers

3
votes

Based on what I found after some quick searching on GPU history, vertex shaders were introduced with DirectX 8.0, with GPUs supporting it being released around late 2000 or early 2001. Sometimes GPUs with older architectures keep being sold for some time longer at the low end of the price scale. But pretty much any desktop GPU sold within at least the last 10-12 years should support vertex shaders.

On mobile platforms, vertex shaders were introduced with OpenGL ES 2.0. Those specs were released in March 2007. There were some smart phones with fairly low-end GPUs that did not support ES 2.0 still sold around 2009. Based on the latest data by Google (http://developer.android.com/about/dashboards/index.html), 99.9% of actively used devices that run Android 2.2 or higher support ES 2.0.