Does OpenGL support soft rendering?

Hi, guys, i think a question that if my video card can’t support some extensions , can i still render it normally by “soft” implementing it , not by hardware?
In Direct3D, there is a hardware abstraction layer, which "hide " the hardware detail from our application, does OpenGL have something like this?

Usually not.

Theoretically, a driver may implement a feature in software, if a card isn´t able to do that. For example vertex programs are available through software on almost all cards, even if they don´t have a processor for it.

However, most features are simply too advanced to be possible to get emulated. Either an extension is a REAL software extension, which means it´s ALWAYS done in software (because it´s just another way to handle things, like VBOs), or it is a real cool new feature, then it wouldn´t be possible to emulate it at interactive framerates.

The only thing, i know of, where this is done, is nVidias emulate-tool, which allows you to use fragment programs. But then you count seconds per frame, not frames per second anymore.

If you need to test something, which your card does not support, you can try out MESA, it´s a complete software implementation of OpenGL.

So, to answer your question, no, there is no default fallback mechanism in OpenGL as in DirectX, but simply because it doesn´t make sense. IF it makes sense, there sometimes is, but that´s rarely the case.


What you said is just what i want.
Thanks a lot. I get it.

Then, I have another question:
What’s the differences between OpenGL Implementations in different OS, like, in windows, OpenGL version is 1.1, others may be 1.2 or 1.3? what do these mean?

Check out the FAQ, there is certainly a word about that