[x3d-public] Zee to thee or Zee to me?

Joe D Williams joedwil at earthlink.net
Mon Aug 14 01:45:18 PDT 2023


> Huh.  *  X3D Scene Authoring Hints


If importing characters with skeleton and skin drawn using +Zin (which is a poplar introductory coordinate system) and wish to import into x3d for the purpose of using standardized x3d animations designed for +Zout animations, the user should know the following:

(1) The default Front camera viewpoint in both systems is aimed at the Front of the object at 0 0 0.

(2a) The Front of the object drawn in +Zout space is facing +Z and the default Front view camera is aimed from relative +Z toward -Z to view 0 0 0, Also, left is increasing X, and up is increasing Y. 

(2b) The Front of the object drawn in +Zin space is facing -Z and the default Front view camera is aimed from relative -z toward +Z to view 0 0 0. Also, same as above, left is increasing X, and up is increasing Y. 

(2c) This means you don't need to readjust much to show the either character in its default before animation pose looking from the default +Zout viewpoint. This also means that that the default orientation of every point and every Joint Transform z-axis orientation is 'reversed' in that the same z-axis rotation applied to a +Zout Transform will have the opposite result when applied to a +Zin Transform. The X and Y axes are not changed. Needs art showing X and Y are same Front for both, no matter which way +Z points.  

(3) We should have an import option for characters drawn in +Zin space, facing -Z in +Zin space. Animations designed for a +Zout character can be adapted to +Zin animations by adjustment of the 'reversed' z-axis orientation of the imported model.
Allowing definition of the character at this level such as Basic Loa3 +Zout. With +Zout as default and +Zin as option. This will be more versatile and comprehensible than using other fields of the Humanoid to compensate for pose differences between the HAnim +Zout I pose and the +Zin I pose. 

Anyway, that is really all we need to know. That and does this have any relationship to Geo alternate spaces? So, the model coordinate system in which the model is drawn should be declared in the Humanoid. Defined is skin same as skeleton because if not, then ptsd will follow.

These two spaces define the default z-axis orientation of every point and Joint of the model. When you wish to animate the points and joints of the model using systematic methods to produce motions, then you gotta know how to pitch, yaw, and roll. You need to know that if the model was born +Zin, then roll is reversed from what you got from your +Zout model. No pun intended. 

This is fun, old fun but current fun because +Zin has much better promotion over the years and if you are the pilot bolted to 0 0 0 by the seat of your pants, looking out front at all those +Zs must be grand. Look over your shoulder, the audience is behind you. To take your bows, you will need to turn and face the audience and that, master pilot, facing -Z to accept the accolades will be your default pose.

Fun with Zouts and Zins.
Lesson: It really does not matter for setting poses, just if you actually want to animate between poses. 

Joe

-----Original Message-----
From: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Sent: Aug 13, 2023 7:43 PM
To: Joe D Williams <joedwil at earthlink.net>
Cc: X3D Graphics public mailing list <x3d-public at web3d.org>, Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Subject: RE: [x3d-public] Zee to thee or Zee to me?

Huh.  Wondering why are you asking a valid question from something that is by-definition nonsensical?  It is popular, I know I know…  Probabilistic liar, randomized idiot savant, automated con artist – sorry, not sure about that.

Here is our public guidance.  Improvements always welcome.

  *  X3D Scene Authoring Hints
  *  These hints provide a collection of style guidelines, authoring tips and best practices to improve the quality, consistency, and maintainability of Extensible 3D (X3D) Graphics models.
  *  https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html


  *  X3D Scene Authoring Hints: Coordinate Systems and Rotations
  *  https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#CoordinateSystems


  *  Each set of axes follows the right-hand rule (RHR) for coordinate systems.
  *  https://x3dgraphics.com/images/Chapter03/RightHandRuleAxes.png


  *  Each set of orientations follows the right-hand rule (RHR) for angle rotations.
  *  https://x3dgraphics.com/images/Chapter03/RightHandRuleOrientations.png


p.s. listing only one axis at once is ill defined.  You need X Y and Z, also need Right Hand Rule for completeness.

Have fun with X3D, wherever you are…  8)
 
all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman

From: x3d-public <x3d-public-bounces at web3d.org> On Behalf Of Joe D Williams
Sent: Sunday, August 13, 2023 6:36 PM
To: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: Re: [x3d-public] Zee to thee or Zee to me?


Question: I am building a Humanoid, should I use +Zout or +Zin?
answer Bing chat with GPT-4 :
"The choice between +Z in or +Z out depends on the software you are using. In general, +Z in is used for Maya and +Z out is used for Blender.
In Maya, the positive Z-axis points towards the camera while in Blender it points away from the camera. So if you are using Maya, you should choose +Z in and if you are using Blender, you should choose +Z out.
I hope that helps! Let me know if you have any other questions." 
 
However, this might as well say +Zout and +Zin is: one is world standard 3D righthand coordinate system for interactive graphical scenegraphs and thus for character animation, and one uses Dx lefthand system based on proprietary(?) gaming platforms?
 
One way I heard it was +Zout was designed a long time ago by true innovators of realtime interactive viz to reduce the effects of humans on global climate change and, so the tech would be free (true story). In this plan, the default view of the character to be animated from 0 0 0 is toward the audience, not the scenery at the back of the stage. The default camera is looking at the back of the stage which is in back of the character facing the audience out here in+Z. 
 
Another story was +Zin was chosen as best cockpit view with pilots butt rooted at 0 0 0 facing +z. In this case the default camera is looking +Z to see the airscape out the cockpit front window. However, for character animation, the Front camera is still looking at the front of the character, so the character to be animated in +Zin is facing -Z. 
 
Regardless of default Z, our X and Y are the same when viewing the world system Front. Just that for the view of the Front of the model at 0 0 0 is in positive space for +Zout, and in negative space for +Zin. 
 
So a fundamental disturbance began that made the vrml and the ogl righties and the Dx lefties a basic workflow conflict begin, now I am off the track, like html browser wars with some primary functionality. 
 
Whatever. For either system the default camera looking at 0 0 0 is going to be aligned along the z axis and looking either toward toward -Z if +Zout or +Z if +Zin, but always looking at the face of the model to be animated. The rear of the stage is visible behind the model. It is only fair to start there because default camera viewpoint looking at 0 0 0 is either either oriented toward -z for +Zout, or toward +z for +Zin.
In either case, the model at 0 0 0 is facing the default camera and the X and Y axis are the same. 
 
So what does this mean for transportable animations, which is the goal of all this. 
 
Joe
 


From: Joe D Williams <joedwil at earthlink.net (mailto:joedwil at earthlink.net)>
Sent: Aug 10, 2023 3:18 PM
To: X3D Graphics public mailing list <x3d-public at web3d.org (mailto:x3d-public at web3d.org)>, Vincent Marchetti <vmarchetti at kshell.com (mailto:vmarchetti at kshell.com)>
Subject: Re: Zee to thee or Zee to me?

So, does a debate emerge?. HAnim Humanoid space is by default same as x3d default coordinate space. Basically the x3d Right hand rule where the default viewpoint is facing -Z and if you are on the stage, at 0 0 0 you are looking into the camera, gaze toward +Z. If you move from 0 0 0, the translation to the right is negative, left is positive, up is +Y, and back is -Z and forward+Z. That is also the default rotation for any transform Transform (Joint) of the Humanoid. 
 
OK, so that was all there was, of course special transformations and rotations of the X Y Z directions for special purposes, including HAnim. For years data has been collected for examples of human stature. Many of those measurements happened to be of deceased and others with most data taken in while the subject is at rest face up. Thus, much of that data used X Y as the ground plane and z as elevation from the floor. Since that is not the model pose we needed for prior to animation pose, the measurement coordinate system was just tilted up, and the model then naturally was facing +Z. This worked fine along with other uses technically, so all is good. 
 
Until mid-19nineties or so. A major toolmaker, producer and distributor of graphics products decide that right-handedness has had its day and it was time for the lefties to create their niche. So, as the GL is forming along its traditions, Dx emerges. For some undeclared Dx reasoning, now the Z axis is yawed pi rads to make a lefthanded coordinate system. Funny things can happen when you animate a lefty with righty code. Think of the situation where the model doesn't know its Zs have been swapped. How will the model know this has happened? Born a righty but implemented as a lefty. Success or ptsd in store for user?
 
There is a clear way to convert righty models to lefty models and a systematic way to convert animation codings between the setups, but does the HAnim standard need to recognize both systems. With the goal of accumulating motion and interaction libraries, does x3d HAinimHumanoid need a property that says lefties are allowed and accommodated? 
 
Anyway, is it worth thinking anything about this now? 
Any common ways of dealing with import of lefty animations into x3d righty system?
 
Thanks,
Joe
 






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230814/784ba122/attachment-0001.html>


More information about the x3d-public mailing list