When changing shaders, it may be desirable to have certain uniforms carry over without having to set/write to them each time. For example, when rendering elements in a scene, you may want to change shaders more than once; and yet it would be nice to only have to set the view projection matrix once and have the value carried over when switching shader programs. In direct 3d, I believe this is done through constant registers (i.e. postfixing uniforms with a c0, c1, c2, etc. semantic), and in the "old" opengl way of doing things, constants like gl_ModelViewMatrix were available in the shader. Uniform Buffer Objects seemed like an alternative to this, however it looks like they are not available in OpenGL ES 2.0? If so, is there any way to do what I have described above or is the only option to simply set uniforms like this each time you change shaders?