I recently read this list and I noticed that almost everything I studied from the OpenGL Red Book is considered deprecated.
I’m talking about pixel transfer operations, pixel drawings, accumulation buffer, Begin/End functions (!?), automatic mipmap generation and current raster position.
Why did they flag these features as deprecated? Will it be okay to still use them? What are the workarounds?
In my opinion its for the better. But this so called
Immediate Modeis indeed deprecated in OpenGL 3.0 mainly because its performance is not optimal.In immediate mode you use calls like
glBeginandglEnd. So the rendering of primitives depends on the program’s commands, OpenGL can’t advance until it gets the appropiate command from the CPU. Instead you can use buffer objects to store all your vertices and data. And then tell OpenGL to render its primitives using this buffer with commands likeglDrawArraysorglDrawElementsor even more specialized commands likeglDrawElementsInstanced. While the GPU is busy executing those commands and drawing the buffer to the targetFrameBuffer(basically a render target). The program can go off and issue some other commands. This way both the CPU and the GPU are busy at the same time, and no time is wasted.Not the best explanation ever, but my advice: try to learn this new rendering pipeline instead. It’s superior to immediate mode by far. I recommend tutorials like:
http://www.arcsynthesis.org/gltut/index.html
http://www.opengl-tutorial.org/
http://ogldev.atspace.co.uk/
Literally try to forget what you know so far, immediate mode is long deprecated and shouldn’t be used anymore, instead, focus on the new technology 😉
Edit Excuse me if I used ‘intermediate’ instead of ‘immediate’, I think its actually called ‘immediate’, I tend to mix them up.