WebGLTutorials --> value
A couple of things which seem to be of some value
Multiple canvases
An architecture which allows multiple canvases to be open on a single page
Rendering that is not "not half fast"
not drawing the backside of things (the side which you can not see) It is facing away from you
and you can not see it, so why waste the time to render it. One application of this
technique is to be able to draw a cube as a triangle fan which has only six triangles.
Knowing which way is up.
Having easy access to the Point Of View (POV) location in 3D space (X,Y and Z)
and the POV orientation (the direction in which you are pointed), PITCH, ROLL and YAW
EyeFish
Several of the concepts involved in webGL would be best shown by being able to look at a point of view,
from a second point of view. To visualize the two POV's, we'll use the avitar formed around the concept of
an eyeball on the front of a fish. The eyeball is because we are looking out of these POV's. The Fish is
because they can hover, unmoving, pointing in any orientation, just like the POV of a webGL application.
CrossHairs
Hardly a new or creative thing, but it is useful to mark the object in the center of the canvas.
Striker
This is one of the things which needs a second POV to see. The striker is a long thin set of triangles
going out from the POV. One striker goes straight out, in the direction straight forward, straight out
the crosshairs. Another striker goes out following the movement of the mouse. These are
not visible from the the striker originating POV, as it is rather like looking at a piece of spaghetti
end on.
Triangle intersection
Let any 6 points in 3D space define two triangles. Do they intersect?
This combines with the striker to detect points in the object field to allow the 3D movement interface.
You can't know if you have bumped up against the wall if you can not calculate triangle intersections.
This technique is quite fast, as it is modeled after the work of Georg Glaser in C and Dos. This
solution, however, works correctly in all orientations.
3D movement interface
Put you mouse on a an object. Hold down the left mouse button and move the mouse. The images shifts
in a way which has the same portion of the moused-over object stays under the mouse.
Hold down the right mouse button and move the mouse up or down. The image tilts thru the point
that the crosshair is aimed at.
Hold down the shift key and the right mouse button and move the mouse left or right. The image spins around the point
that the crosshair is aimed at. One can make the interface select between two spin modes, or code one
or the other. The spin can be in the XY plane, or can be orthogonal to the forward direction of the
POV.