Will no one use fixed functions in the future?

Hi.

I heard that whole fixed function pipe line is removed since OpenGL3.1
I have a few questions about that news.

??? Does this mean that most people don’t use the fixed functions but instead they prefer the shading?
Or both of OpenGL 3.x and OpenGL 2.x will be steadily maintained for being used in the different domain?

??? If the graphics driver supports ≥ Opengl 3.1, programs written in fixed functions can’t be executed?

Thank you.

Junyeong

Fixed function is deprecated, not removed. Maybe on some specific hardware it won’t be supported, but for desktop applications fixed functions can still be executed for the time being.

In OpenGL 3.0 the fixed functionality has been deprecated. In OpenGL 3.1 it has been removed completely from the API, although it exists as an optional extension that drivers can still implement. Currently cards that support 3.0+ also support < 2.1, you just have to request which profile you want to use when creating your windows. This is handled for you in JOGL 2.0 using the GLProfile class.

I recommend that you use shaders as long as you’re not intending on targeting anyone who couldn’t support it. ATM many people exist with terrible graphics cards that don’t support shaders, but soon shaders will be everywhere. If you want to make anything look truly beautiful, you’ll need to use shaders. In addition, the concepts learned when implementing shaders tend to lead to better design for a fixed-function renderer, from my experiences.

Interesting. Thanks for setting me straight on that. It seems deprecated in OpenGL has rather different implications to ‘deprecated’ in Java…

when he says “soon” he means in about 4 years time.

Cas :slight_smile:

Isn’t that about how long it takes to make a game worth selling?

So, do you think that the shader will supersede the fixed functions soon(in 4 years).

If so it might be better to learn and use the shader (not fixed function)?

Learn the both. Personally, I still make a particular effort to support even graphics cards with only OpenGL 1.3, it depends on your target.

I have trouble getting my head around this.

If I write code today targeting (say) OpenGL 2.1 and requesting the appropriate profile in JOGL2 (or LWJGL, assuming that works similarly), then in four years (nominally) that code won’t run on a lot of up-to-date graphics cards.

On the other hand, if I write code today targeting OpenGL 3.1, then it won’t run on a lot of existing graphics cards.

Am I getting that right?

Simon

Well, that’s just software entropy for you… all those games written back in 1997 probably don’t work any more do they? Things just change.

Cas :slight_smile:

nop with opengl, but fortunatly unreal have a perfect software rendering so that we are able to play our daily match at work :wink: