<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:950818697;
mso-list-type:hybrid;
mso-list-template-ids:-614194908 1019518696 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:16;
mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;
mso-fareast-font-family:Calibri;
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Joe and I were working with various HAnim models today (using X3D-Edit!) and found an important problem.<o:p></o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Mantis <span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'>1410: HAnimHumanoid skin definitions have no way to assign textures</span><o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/member-only/mantis/view.php?id=1410<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'>HAnimHAnimHumanoid skin definitions have no way to assign textures because Shape nodes are not currently allowed in the X3D4 parent-child node hierarchy.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>* X3D4 Architecture, HAnim component, 26.3.2 HAnimHumanoid</span><br clear=all><span style='background:#EBEBEB'>* https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid</span><br clear=all><br clear=all><span style='background:#EBEBEB'>Relevant field is</span><br clear=all><span style='background:#EBEBEB'> MFNode [in,out] skin [] [IndexedFaceSet, IndexedFanSet, IndexedQuadSet, IndexedTriangleSet, IndexedTriangleStripSet]</span><br clear=all><br clear=all><span style='background:#EBEBEB'>It is possible to assign color values, through use of Color or ColorRGBA nodes within IndexedFaceSet, for example. However, because Shape is not permitted, there is no way to assign corresponding Appearance with either Material or ImageTexture.<o:p></o:p></span></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'>The following example shows animated skin with a texture, playable in X_ITE (and X3DOM and BSContact) players.</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#F3F3F3'>* X3D Example Archives: Humanoid Animation, Characters, Joe Kick</span><br clear=all><span style='background:#F3F3F3'>* </span></span><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeKickIndex.html"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#F3F3F3;text-decoration:none'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeKickIndex.html</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#F3F3F3'>Excerpt:</span><br clear=all><span style='background:#F3F3F3'><Shape DEF='Joe_Shape' containerField='skin'></span><br clear=all><span style='background:#F3F3F3'> <Appearance DEF='Joe_skin_Appearance'></span><br clear=all><span style='background:#F3F3F3'> <Material DEF='Joe_skin_Material' diffuseColor='0.3 0.3 0.6' emissiveColor='0.3 0.3 0.6'/></span><br clear=all><span style='background:#F3F3F3'> <ImageTexture DEF='JoeSkinImageTexture'</span><br clear=all><span style='background:#F3F3F3'> url=' "JoeBodyTexture29.png" "</span></span><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png%22"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#F3F3F3;text-decoration:none'>https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png"</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'> '/></span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><span style='background:#F3F3F3'> <!-- ROUTE information for KickTextureTransform node: [from SkinInterpolator.value_changed to rotation ] --></span><br clear=all><span style='background:#F3F3F3'> <TextureTransform DEF='KickTextureTransform'/></span><br clear=all><span style='background:#F3F3F3'> </Appearance></span><br clear=all><span style='background:#F3F3F3'> <IndexedFaceSet DEF='Joe_skin_IndexedFaceSet' etc.</span><br clear=all><span style='background:#F3F3F3'> <Coordinate DEF='Joe_SkinCoord' point= etc.</span><br clear=all><span style='background:#F3F3F3'> <TextureCoordinate point='0 0 0.5 0.5 0.5 0 0 0.5'/></span><br clear=all><span style='background:#F3F3F3'> </IndexedFaceSet></span><br clear=all><span style='background:#F3F3F3'></Shape><o:p></o:p></span></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'>HAnim specification says</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>* HAnim specification version 2 volume 1, 6 Object interfaces, 6.2 Humanoid</span><br clear=all><span style='background:#EBEBEB'>* </span></span><a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid"><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:royalblue;background:#EBEBEB;text-decoration:none'>https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid</span></a><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><br clear=all><span style='background:#EBEBEB'>sequence<Object> skin [] <b>[indexed mesh objects as defined by the representation]</b><o:p></o:p></span></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'>An example “representation" for HAnim is X3D.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'> <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'>Possible fix:</span><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'><br clear=all><span style='background:#F3F3F3'>a. Allow Shape node, in addition to IndexedFaceSet etc. (Matching Joe's example)</span><br clear=all><span style='background:#F3F3F3'>b. Note in the X3D4 specification prose that such a Shape node must contain one of those same nodes (IFS, ITS etc.). That will allow identical geometry capabilities that are currently clearly defined.<o:p></o:p></span></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#F3F3F3'>Note that the animated Korean characters did not display such a problem because they are apparently textures are part of HAnimSegment that is animated, which is part of skeleton field hierarchy, and not part of skin field. For example,<o:p></o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>X3D Example Archives: Humanoid Animation, Characters, Jin LOA 4<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Articulated 3D game character designed with a general graphics tool, then converted into an X3D HAnim model.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4Index.html">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4Index.html</a><o:p></o:p></li></ul><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.5pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We recommend<o:p></o:p></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Taking a generous view of HAnim2 wording “<b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:#EBEBEB'>[indexed mesh objects as defined by the representation]”</span></b><o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>to allow identical usage of a Shape node, thus ensuring that textures are possible on animated human skin.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>Such an approach is already demonstrated in our examples, so it is feasible and expected.<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sincerely yours, Joe and Don.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>