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?
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?
You have much more control. Much much more control.
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.
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)
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.
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))
That's completely unrelated to my statement.
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.
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.
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.