This is an FAQ for the Graphics and 3D Programming forum. It is freely editable. Let's get helpful and accurate answers. The intended approach, here, is a concepts-first overview. Actual questions about the concepts and tools can be added as extras.
What is 3D programming?
Code which attempts, in non-trivial ways, to visually portray objects so humans perceive them as having depth, in addition to the usual height and width available on monitors.
What tools are available?
Java OpenGL (JOGL). This is just a wrapper around OpenGL. Books and other knowledge port almost instantly.
JavaFX Scene. JavaFX, the GUI technology, includes a 3D scene graph.
Java3D. This dates back to around 2000, but has been losing mindshare to JavaFx.
Ray casting techniques. This is an advanced technique which can yield more realism, but at a cost in terms of rendering speed. All things change, however.
What concepts must be addressed?
Projection or Perspective - how to layout Z dimension and how x and y are perceived
Coordinates - world, object, eye, etc.
Z order - how to arrange things that occlude one another
Geometry - how to represent some real-world object in a 3D scene
Clipping - don't pay cycles for what the user cannot see
Focus - what part of the scene do is visible, and from what direction
Lighting - making surfaces look more realistic.
Coloring - applying required colors, including texturing if applicable
Animation - it looks like it's moving
Picking - selecting one object in the scene, or figuring out where in world coordinates the pointing device was clicked
Level of detail - making the scene 'busy' or 'blurry' depending on proximity
Performance - balancing all the above with metrics like frame rate
What's the difference between OpenGL and Java OpenGL?
Java OpenGL, or JOGL, is a thin layer atop the OpenGL C library and JNI.
JOGL is, according to this link, http://jogamp.org/jogl/www/ "...the Java™ Binding for the OpenGL® API, and is designed to provide hardware-supported 3D graphics to applications written in Java."
Since they are so similar, reference materials on OpenGL can be used with little mental translation, for JOGL concepts.
Being part of the Java Virtual Machine, byte order differs internal-to-java, vs the GPU.
One of the 'seams' between Java and OpenGL, is that Java NIO buffers must be used to push data back and forth (edit: when working with VBO's)
Foundations of 3D Computer Graphics, by Steven J. Gortler. Dense, conceptual book on the concepts.
The OpenGL Super Bible. Big, fat book, with lots of examples. All C.
OpenGL Programming Guide, from the same source as the super bible.
Interactive Computer Graphics, by Edward Angel and Dave Shreiner. Covers techniques, and builds up with theory.
3D User Interfaces with Java 3D, by Jon Barilleaux. This addresses most or all the concepts listed above, for Java3D.