<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">> <span style="color: #000000; font-family: 'Times New Roman'; font-size: medium; white-space: normal; float: none; display: inline;">That is why in Blender terminology the X3D convention should be considered -Z forward. </span> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">(?) Depends if you are concerned with default Viewpoint orientation or default Joint rotation. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">For the default Viewpoint gaze direction -Z is forward. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Default Viewpoint orientation=0 0 1 0 and "forward" gaze is toward -Z. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">You are looking at the Front of the model. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">For the default model, +Z is forward gaze default Joint rotation=0 0 1 0. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">If you are sitting on the Transform (Joint) then you are looking at the Viewpoint and out of the screen =+Z. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">It just depends on whether you are looking at the model (orientation) </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">or the model is looking at you (rotation). </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">So, if you are looking at the model you can see a Segment orientation</p>
<p style="margin: 0.1rem 0; line-height: 1.0;">which is a result of a parent Joint rotation. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">For instance, to set a Viewpoint as the model eye, move the Viewpoint to the eyeball Joint and give the Viewpoint pi radians of yaw (orientation=0 1 0 3.14) and you will be gaze +Z. </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;">Joe</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>Sent: Nov 24, 2024 6:11 PM<br>To: X3D-Public <x3d-public@web3d.org><br>Cc: Brutzman, Donald (Don) (CIV) <brutzman@nps.edu><br>Subject: Re: [x3d-public] X3D, Blender, and which way is up.</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">Your definition sounds good to me. Glad to hear that this is consistently sorted out and implemented in recent Blender version.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;"> </div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">Here are X3D Tooltip hints for Viewpoint and orientation:</div>
<ul style="list-style-type: disc;" data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof">X3D Tooltips: Viewpoint</div>
</li>
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof">Viewpoint provides a specific location and direction where the user may view the scene. Viewpoints are the primary way for a user to navigate within a scene, and for an author to show critical aspects of a model. Unless modified by the orientation field, the default direction for a Viewpoint to look is along the -Z axis. </div>
</li>
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof">https://www.web3d.org/x3d/content/X3dTooltips.html#Viewpoint</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof"> </div>
</div>
</li>
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof" style="margin: 0px;">X3D Tooltips: Viewpoint orientation</div>
</li>
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof">https://www.web3d.org/x3d/content/X3dTooltips.html#Viewpoint.orientation</div>
</li>
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">
<div class="elementToProof"><strong>[orientation <a id="OWA0c5c34c5-9ae6-ba96-ada6-7e542a63a5e1" class="OWAAutoLink" title="initializable field that can send or receive events at run time" href="https://www.web3d.org/x3d/content/X3dTooltips.html#accessType"> accessType inputOutput</a>, <a id="OWAf304c919-0588-52b5-b051-a5660baf03f8" class="OWAAutoLink" title="Single-Field 4-tuple value" href="https://www.web3d.org/x3d/content/X3dTooltips.html#SFRotation"> type SFRotation</a> <a id="OWA9f162e5e-a6df-d2be-f707-24781b9c5c3a" class="OWAAutoLink" title="CDATA means Character Data plain text (DTD validation)" href="https://www.web3d.org/x3d/content/X3dTooltips.html#CDATA"> CDATA</a> "0 0 1 0"]</strong><br>Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system.<br><strong>Hint:</strong> this is orientation _change_ from default direction (0 0 -1).<br><strong>Hint:</strong> complex rotations can be accomplished axis-by-axis using parent Transforms.<br><strong>Warning:</strong> for VR/AR/MR/XR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.</div>
</li>
</ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: #000000;">Improvements always welcome. Have fun with X3D! 🙂</div>
<div id="Signature" class="elementToProof">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;"> </span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">all the best, Don</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">--</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: 'Courier New'; font-size: 9pt;"> </span></p>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif; font-size: 11pt; color: #000000;"> </div>
<hr style="display: inline-block; width: 98%;" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-size: 11pt; color: #000000; font-family: Calibri, sans-serif;"><strong>From:</strong> x3d-public <x3d-public-bounces@web3d.org> on behalf of vmarchetti--- via x3d-public <x3d-public@web3d.org><br><strong>Sent:</strong> Sunday, November 24, 2024 11:39 AM<br><strong>To:</strong> X3D-Public <x3d-public@web3d.org><br><strong>Cc:</strong> vmarchetti@kshell.com <vmarchetti@kshell.com><br><strong>Subject:</strong> [x3d-public] X3D, Blender, and which way is up.</span>
<div> </div>
</div>
<div style="line-break: after-white-space;">I've seen that the email thread starting with the minutes of the last Blender-X3D support call had a subthread about the orientation conventions that glTF, Blender, and X3D use.
<div> </div>
<div>I recommend Michalis' answer at <a href="https://web3d.org/pipermail/x3d-public_web3d.org/2024-November/020882.html" data-auth="NotApplicable">https://web3d.org/pipermail/x3d-public_web3d.org/2024-November/020882.html</a>.</div>
<div> </div>
<div>One confusing aspect is that not only do Blender and glTF disagree about which axis is forward, they disagree about what the word "forward" means.</div>
<div> </div>
<div>For Blender, the word "forward" refers to the axis that the viewer is looking along when they are viewing the front of the model. </div>
<div>The viewer is translated from the model in the -Y direction, and they are looking in the +Y direction. That, +Y, is Blender "forward"</div>
<div> </div>
<div>glTF defined "forward" by the model.Looking at the first sentence of the of section 3.4 of the glTF specification. <a href="https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units" data-auth="Verified">https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units</a>, </div>
<div><span style="font-family: -webkit-standard; font-size: medium;"> </span></div>
<blockquote>
<div><span style="font-family: -webkit-standard; font-size: medium;">glTF uses a right-handed coordinate system. glTF defines +Y as up, +Z as forward, and -X as right; the front of a glTF asset faces +Z.</span></div>
</blockquote>
<div> </div>
<div> </div>
<div>glTF says the "forward" refers to the direction the asset, a.k.a. model is facing and the spec shows this example picture . In Blender terminology this model is oriented "-Z forward"</div>
<div> </div>
<div> </div>
<div> </div>
<div><img src="cid:cfeecf15-5f29-4f82-b0ac-49856366e238" alt="boombox.png" data-outlook-trace="F:1|T:1"></div>
<div> </div>
<div>The X3D standard has the same orientation convention as glTF, by virtue of the X3D default placement of the Viewpoint at a Z=+10 position and looking in the -Z direction. That is why in Blender terminology the X3D convention should be considered -Z forward. The code in the Blender extensions server was changed to this default for X3D import and export on Nov 4 2024 and this default is in release 2.4.0 of this Blender extension.</div>
<div> </div>
<div>Vince Marchetti</div>
<div> </div>
<div> </div>
<div> </div>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>