The issue of a base VRML coordinate system came up last year in the
mailing list, and did not make it into VRML 1.0. It is worth
re-examining as we head into interactivity... It definitely should be
in VRML 1.1.
1) The base coordinate system should be in the VRML standard, not ad-hoc
2) +Z should be up from ground plane, NOT into the screen
3) X-Y should define the ground plane
4) Should use the right hand rule
5) rotations should be additive, body centered, NOT about fixed axis set
6) +Y should be forward in body-centered coordinates (i.e. if you
build a geometric model of a vehicle, you use the convention that the
+Y axis is the front!)
It is important that this gets into VRML 1.1 now because a large
number of worlds and geometric models, browsers, etc are being built
sooner, rather than later, and people need this point of reference to
ensure their constructions can be used in the same way by everyone
else. Conversion routines from other coordinate systems, to this, as
Don Brutzman mentioned below, would make life alot easier for the VRML
community.
// Randy Stiles Office: 415.354.5256 Orgn 9620 Bldg 255
// [email protected] Fax: 415.354.5235 3251 Hanover Street
// Lockheed AI Center Lab: 415.424.2690 Palo Alto, CA 94304-1191
// http://hitchhiker.space.lockheed.com/~stiles/HOME.html
From: [email protected] (Don Brutzman)
Date: Sun, 21 May 1995 20:33:45 -0700 (PDT)
Yes I think that coordinate system definition needs to be in the
specification too. Great idea. Right-hand rule is of course essential.
> Another thought is what orientation should the coordinate
> system be in. I realize why people like the X-right, Y-up,
> with Z perpendicular to the screen, mostly because they are
> used to seeing this on graph paper and it extends very nicely
> to the screen. I think that we need to make a paradigm
> shift when we go into 3-d, and rather than making the global
> cartesian system conform to the 2-d stuff we have been using,
> something intuitive to the 3-d world would be appropriate.
> My feeling on what may be more explainable to the average
> person coming into 3-d is X-forward, Z-up, now using the
> right hand rule we can say Y is to the left. The reason
> this makes sense to me is I can look at the ground I am
> travelling over in the 2-d sense of x-y and add the height
> with z. Just some thoughts.
This matches what I've been saying and is very clearly expressed.
An additional note here: the description of forward/up/left is from
a default perspective of a camera looking along the positive X axis, level
to the X-Y plane. The other essential is that X and Y axes define the
ground plane, not Z. Anything you care to say about camera direction is fine
after (a) right-hand rule, and (b) X-Y plane level is agreed upon.
The corresponding scene graph has X-Y grid coordinates for location over the
ground and Z coordinate for height/altitude. This matches (or is directly
compatible with) all of the major physically based conventions for defining
location.
I recommend we put (a), (b) and (c)=predefined camera viewpoints
(a la the Palladium) in VRML 1.1 or 2.0. In order to provide easy
compatibility with other coordinate system definitions, a handful of
different transformation nodes which convert from one coordinate system to
another might be useful to have in the FAQ (or as selectable browser options).