I feel that I am on the same boat as Morious.
I am brand new to OpenGL with minimal DirectX9 experience, and I have absolutely no clue where I should be reading to get a better understanding of how OpenGL is structured.
I have found from another thread that GL11 = GL 1.1, GL21 = GL 2.1, etc, and, with that information, I see that LWJGL supports OpenGL from version 1.1 up to version 4.2. The very basic tutorials provided by the wiki are using GL11, which I assume (like I said, I have no understanding of OpenGL right now
) is the most outdated OpenGL standard available. From the research I've done thus far, there are so many varying opinions on whether or not NeHe's tutorials are worth reading (I don't even know what version of OpenGL those utilize, but it seems similar enough to the basic LWJGL tutorials on the wiki for them to be a viable starting point in my scenario). Some say that a lot of the functionality (workflow, whatever you want to call it) is deprecated, and that learning OpenGL away from the latest standards is not optimal, but I have no idea if learning the latest OpenGL standards is what I'm aiming for. I also assume that the latest standards require more up-to-date graphics hardware, and I'm definitely not trying to target the latest hardware (unless you consider Android to be "latest hardware"). What confuses me further is that, as mentioned, the basic LWJGL tutorials provided in the wiki utilizes version 1.1 of OpenGL. So are those tutorials really that old, or is it simply OpenGL 1.1 being a viable solution for it's minimal functionality? Is learning OpenGL from the latest specification really that big of a deal?
I'm frustrated at this point that all of the information I find is so volatile and misleading. I'm having an extremely difficult time trying to find a good starting point for me to start writing. I guess my biggest frustration is understanding the relationship between all of the OpenGL specifications.
Don't know if this warrants another thread, but I feel that Morious's issue doesn't stray too far away from mine.
Thanks!
Brandon.
EDIT:Straight from the Official 4.2 SpecificationOpenGL version 3.0, released on August 11, 2008, is the eighth revision since
the original version 1.0. When using a full 3.0 context, OpenGL 3.0 is upward
compatible with earlier versions, meaning that any program that runs with a 2.1 or
earlier GL implementation will also run unchanged with a 3.0 GL implementation.
OpenGL 3.0 context creation is done using a window system binding API, and
on most platforms a new command, defined by extensions introduced along with
OpenGL 3.0, must be called to create a 3.0 context. Calling the older context
creation commands will return an OpenGL 2.1 context. When using a forward
compatible context, many OpenGL 2.1 features are not supported.So now from my understanding, as long as I write my code using an OpenGL 3.0 context, my code is backwards (AND/OR?) forward compatible depending on seemingly various configurations during context setup. But I have also discovered that NeHe's tutorials are
painfully old, and should only be used for the concepts presented, so I highly recommend avoiding them. Rendering through VBO's is not as difficult as I had previously anticipated, either.
Useful Resources:
Official 4.2 Specification -
http://www.opengl.org/registry/doc/glspec42.core.20110808.pdfInformation on Context Creation -
http://www.opengl.org/wiki/Tutorial:_OpenGL_3.0_Context_Creation_%28GLX%29http://www.opengl.org/wiki/Creating_an_OpenGL_Contexthttp://www.opengl.org/wiki/Core_And_Compatibility_in_Contexts