I’M new to any 3d graphics development but I have a basic knowledge of java. Does anyone know of some good tutorials that will introduce me to openGL and 3D design.
Well first you need to learn OpenGL:
- http://fly.cc.fer.hr/~unreal/theredbook/
- http://www.arcsynthesis.org/gltut/
- http://www.swiftless.com/opengltuts/opengl4tuts.html
Then you might need to learn some algebra and some basic 3D stuff:
- http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/
- http://members.cox.net/mathmistakes/graphics3d-1.htm
If you want to skip most of the maths, you can just use a 3D/scenegraph library like JME, jPCT, and libGDX.
Don’t skip the math. 3D math is more complicated than 2D math but even when using a library like JME, you’ll want to be able to understand matrices and vectors so things do what you want, and you know where to look when things go wrong.
I might even recommend looking at vector math (in the links that ra4king posted) before learning about OpenGL because some of the core concepts of OpenGL depend heavily on linear algebra.
Yeah the first link is a must, the second link is quite complicated but also necessary.
I agree with lhkbob. Without maths, you cannot become really autonomous when using a 3D scenegraph. If you want to save some time when using high level tools, you must know the low level tools behind them.
So if you’re new, and with OpenGL ES2 and version 4+ where I hear things are very different from how they used to be, should you focus on learning the new rather than the old?
Does LWJGL work just fine with a 4.1 approach? Most tutorials/examples I see use the GL11 import, I assume that stands for version 1.1? And that means it is using the old approach?
There are two hard parts to move from the old to the new: learning to use vertex arrays (and the very similar vertex buffer objects), and learning to use GLSL shaders. Vertex arrays can be used since 1.5 I think and many of the core mathematical concepts used with the old 1.1 approach apply to the vertex arrays, they’re really just a change in the way data gets shoved around.
GLSL shaders on the other hand are much more complicated and put a lot more work on the developer. They also require a very good understanding of the math that goes behind the so-called fixed-function pipeline (or old way).
There is nothing wrong with learning the old or new as a beginner. Many if not all cards support the old way and will for a while yet. Many cards don’t support 4.0+ OpenGL, so if you’re aiming for the new API, I’d target 3.x (it’s still really similar to 4.x). Both LWJGL and JOGL have support for these versions. If you choose to learn the new way, you won’t waste any code. If you choose to learn the old way, you might have a gentler entrance into the world of 3D graphics via OpenGL.
Know where I can find a skeleton of a 3.x+ LWJGL application to start experimenting and learning with?
General information and download:
http://lwjgl.org/
at the bottom last Example, it has a great “general base core template” you can use.
http://lwjgl.org/wiki/index.php?title=LWJGL_Basics_4_(Timing)
check out space asteroids example and others.
http://lwjgl.org/wiki/index.php?title=Main_Page
Aren’t those using the old way of doing things?
I want a skeleton of the most basic code you need to have a LWJGL 3.x+ application up and running, not GL11?
Unless I’m misunderstanding something…
Try to look for a GLSL example in LWJGL and I bet 90% of it will apply to 3.x
[quote=“lhkbob,post:7,topic:36875”]
Vertex arrays are available in OpenGL 1.2 and VBOs are available on some graphics cards supporting OpenGL 1.3 and available on all graphics cards with at least OpenGL 1.5 (1.4?) as far as I know.