5 ms·
OpenGL 101: Matrices – projection, view, model
- DigitalJack 13y agoI'm excited to see this. I missed the prior 3 posts so ill start there.
- eropple 13y agoIt'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.
- zerr 13y agoOld - You mean the fixed pipeline? Also, what's particularly wrong with glPushMatrix?
- oofabz 13y agoglPushMatrix 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.
- wtracy 13y agoIt's present in OpenGL ES 1.x, but your point still stands.
- dualogy 13y agoSame 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.
- eropple 13y agoI 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.
- null_ptr 13y agohttp://freeimage.sourceforge.net/license.html 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.
- eropple 13y agoThis 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.
- thatswrong0 13y agoIf 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-computer-graphics/1003 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.
- angersock 13y agoAn 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.-Chapter-1:-The-Graphics-Pipeline.html http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Cha...
- edwintorok 13y agoAnother one that I like is: http://www.arcsynthesis.org/gltut/ http://www.arcsynthesis.org/gltut/ I was looking forward to its Advanced Lighting chapter, but apparently its not been written yet.
- dualogy 13y agoYeah 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.
- godbolev 13y agoDoes anyone know where I can find some really great OpenGL ES 2.0 tutorials for Android?
- AlexeyBrin 13y agoPragmatic 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.
- jasin 13y agoIt'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.
- ballard 13y agoAh nice. Reminds me of ECS175, IIRC, crash course in quaternions and reimplement some of the OGL pipeline in c.