OpenGL has been used over the years, but it is estimated that it is time to say 88.
OpenGL ARB has been arguing for so many years. Many members cannot quickly reach an agreement on many issues due to interest reasons, resulting in the API being dragged on to the actual development of hardware. Maybe you can use vendor proprietary extensions to implement new functions, but I don't want to write a set of code for each hardware.
Previously, glsl was used. I have studied CG over the past few days. Although I have always opposed the proprietary API of the manufacturer, to be honest, CG is indeed far more mature than glsl. Especially, it has good portability. When opengl.org voted for the next-generation OpenGL shading Language, The glsl dominated by 3dlabs won. It is estimated that manufacturers such as ATI voted against it. When I first got glsl, I thought it was a front-end of arb_xxx_program assembly. The result was not a completely new architecture and was not built on program. To be honest, the glsl design is indeed very beautiful, and the API is very clean and clear. However, if we build a new architecture like this, it will be more troublesome for the real-time user. He needs to write a compiler by himself. Otherwise, if the driver is built on the program, it will be almost unnecessary to change the shader compiler, each vendor can use the same one, because the key is to compile the program. In addition, Meta format similar to d3d hlsl fx does not exist. I can do this myself. God, but what about compatibility? Your product can run on Windows, Linux, or Mac. Even the PS3 certainly supports glsl. But what about Xbox 360? You're done. You said it could be transplanted. Look at crysis. The shader code is close to 0.1 million lines. You can port it and see, God, this is the shader code, which is similar to the code written by C and macros, it is almost impossible to track and debug code with breakpoints. Porting is definitely a headache. Similar to glfx, FX is said to be engaged, but after such a long time, attention is coming. Why is it so long for such a simple thing?
Let alone the entire generation of API that lags behind hardware. I 'd like to see when the dx10 function will be available in Arb.
It is wise to use HLSL for shader. For other non-DX platforms, CG is used. Because of its great compatibility with HLSL, source code porting can be implemented.