▲ 87 points
back
17 comments
It's nice to see somebody actually putting together tutorials for using OpenGL the right way. It's unfortunate how many people are still taught the old, deprecated methods of using OpenGL via ancient tutorials--my first reflex upon seeing this tutorial was to open it and cmd-F for "glPushMatrix", I was pleasantly surprised.
FreeImage has a nonstandard and mildly encumbered license, though. I use LodePNG instead (MIT License); limiting my asset pipeline to PNGs is already a good idea.
http://freeimage.sourceforge.net/license.html
That's weird. It's dual-licensed with GPL 2, but the last paragraph seems to make visible attribution mandatory regardless of license choice.
This is why you use standard licenses. :-( It sounds like they basically want the CDDL (which I'd be totally good with) but writing your own license is rarely a good idea.
Old - You mean the fixed pipeline?
Also, what's particularly wrong with glPushMatrix?
glPushMatrix and many other functions were deprecated five years ago with the release of OpenGL 3. It is only available now in compatibility profile contexts, for backwards compatibility. You can't use it in core profile, OpenGL ES, or WebGL.
It's present in OpenGL ES 1.x, but your point still stands.
Same issue -- since shader-based ES 2.x (and now 3.x) hit the scene, the fixed-function ES 1.x may well be considered deprecated. Sure there's still plenty of 1.x-only devices floating around. But ultimately it's a thing of the past.
I thought "old, deprecated" might be indicative of that. If your code uses glPushMatrix, glBegin/glEnd, or other deprecated stuff, I don't want you writing tutorials for novices (and you should take down your old ones that already use it).
VBOs and shaders from day one. It's easier that way.
An excellent primer on modern OpenGL I've found to be here (one I've shamelessly cribbed and adapted when teaching):
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Cha...
Another one that I like is:
http://www.arcsynthesis.org/gltut/
I was looking forward to its Advanced Lighting chapter, but apparently its not been written yet.
Yeah this one is extremely good. Essential reading for the budding GL developer.
Don't hold your breath for the missing chapters though. I believe it hasn't been updated / extended since almost a year.
It's a good idea to always name your matrices in a manner that explicitly states the source and destination coordinate systems. So rather than 'projection', 'view' and 'model' you'd have something like 'viewToClip', 'worldToView' and 'modelToView'. Then when you concatenate and invert matrices to create new ones, their names are self-explanatory as are their assumed inputs and outputs. It's quite easy to tell what a 'clipToWorld' matrix does. 'viewProjectionInverted' - not so much.
If you're interested in learning more about computer graphics I would recommend checking out cs184x in October: https://www.edx.org/course/uc-berkeley/cs-184-1x/foundations...
The only problem with the course is that it uses some deprecated OpenGL in order to ensure maximum compatibility, but it's still quite worthwhile.
I'm excited to see this. I missed the prior 3 posts so ill start there.
Ah nice. Reminds me of ECS175, IIRC, crash course in quaternions and reimplement some of the OGL pipeline in c.
Does anyone know where I can find some really great OpenGL ES 2.0 tutorials for Android?
Pragmatic has recently published a book about OpenGL ES 2.0 for Android (didn't finished to read the book yet).
The author of this book has also some intro material on his blog.