Fixed Function Pipeline

Started by Hydroque, February 14, 2016, 22:09:53

Previous topic - Next topic

Hydroque

I think it is strange that people are still using fixed function pipeline OpenGL methods, like glOrtho() and stuff.

It has made my learning very difficult, as I have not bought or found a book. I wish there was proper documentation over this, which if I get good enough, I am going to structure. There are no resources over 2D game programming using OpenGL let alone LWJGL. I think this is very important to have.

Why do people still use fixed function pipeline?

Cornix

Why should they not use it? If it is exactly what they need then why reinvent the wheel and program the fixed function pipeline in your own custom shader?

Hydroque

You have much more control. Much much more control.

Cornix

So?
When programming in pure binary you have much much more control then using high level languages like C or Fortran or, god forbid, java! Why would anybody ever use that?
You see? Thats not an argument.

abcdef

I would say people use the fixed pipeline for a couple of reasons

- It comes with a lot of built in functions that make life easy for a beginner (such as lighting)
- Most modern drivers compile the fixed pipeline functions in to programmable equivalents anyway so you aren't losing too much speed

You are right that you have way more control with the modern opengl, but some people are just happy with the basics. Also a lot of people just use engines so there is no need to learn the "complicated" stuff.

With Vulcan out now people will say the same thing, "why use opengl when there is vulcan...you have much more control". But as with the fixed function pipline there are plenty of reasons for using opengl over vulcan (biggest being, if your current application is not cpu limited then you probably won't get any speed increases)

Hydroque

Thanks for answer abcdef!

I can see why people would use it, but maybe it's also a thing because people are brought up with it. "Stopped keeping track of opengl because major changes."
Which I think I can relate to this. I haven't switched to LWJGL3.0 and I am happy with 2.9.3.

abcdef

switching to LWJGL 3.0 won't change the way you use opengl, it only changes the container in which opengl runs (ie the window and the controls that interact with that window (keyboard and mouse))

Hydroque

That's completely unrelated to my statement.

Longarmx

I am not sure I understand your problem. There are plenty of resources on OGL3+, or else, how would any of us learn?  ;)

Also, this ties back to the whole develop an "engine vs. game" debate. Sure you might have more control if you develop your own engine, but then you have to develop the engine in addition to the game. Writing code using legacy OGL is faster than using OGL3+, which is faster than Vulkan. The thing to remember is: use the correct tool for what you are trying to accomplish. There are pros and cons for each "version" of graphic libraries, and you have to choose which one suits your needs best.

Hydroque

So speed is the only factor unless, for example, opengl1.1 is used, but you need opengl3.0 for something specifically implemented in opengl 3. Then you'd move away from the old ways of opengl1.1 and go with opengl3.0 requisites.

orange451

Quote from: Cornix on February 15, 2016, 10:24:50
Why should they not use it? If it is exactly what they need then why reinvent the wheel and program the fixed function pipeline in your own custom shader?
One reason would be mac OS compatability.

on OSX, you cannot mix depricated openGL code with modern openGL code. You have to pick one or the other.