<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Joe, please advise if this might be an updated version of</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">X3D Example Archives: Humanoid Animation, Legacy, Joe Skin Texcoord Displacer Kick</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div style="margin: 0px;">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Legacy/JoeSkinTexcoordDisplacerKick.x3d</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Legacy/JoeSkinTexcoordDisplacerKickIndex.html</div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Or perhaps a new potential contribution.  Or neither... Whatever you think best.  Thanks for your steady efforts.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: "Courier New"; font-size: 9pt; color: rgb(0, 0, 0);">
all the best, Don</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;">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:rgb(0,0,0)">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> on behalf of Joe D Williams via x3d-public <x3d-public@web3d.org><br>
<b>Sent:</b> Friday, December 27, 2024 7:20 PM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org>; Vincent Marchetti <vmarchetti@kshell.com>; X3D Graphics public mailing list <x3d-public@web3d.org><br>
<b>Cc:</b> Joe D Williams <joedwil@earthlink.net><br>
<b>Subject:</b> Re: [x3d-public] Tests for Blender->X3D exporter utilizing texture transformation and per-vertex colors</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText"><"desired" X3D file ... <br>
<br>
Sounds real nice work. Here is a simple texture transform that works in the attached example<br>
<br>
...<br>
      <Shape DEF='Joe_Shape' containerField='skin'><br>
        <Appearance DEF='Joe_skin_Appearance'><br>
          <Material DEF='Joe_skin_Material' diffuseColor='0.3 0.3 0.6' emissiveColor='0.3 0.3 0.6'/><br>
            <ImageTexture crossOrigin='anonymous' DEF='JoeSkinImageTexture' url='"bodytexture28.png"'/><br>
            <TextureTransform DEF='kicktextrans' center='0 0' rotation='0' scale='1 1' translation='0 0'/><br>
        </Appearance><br>
        <IndexedFaceSet DEF='Joe_skin_IndexedFaceSet' coordIndex='0 9 5 -1 ... 382 385 386 -1' creaseAngle='3.14'><br>
          <Coordinate DEF='Joe_SkinCoord' point='0.0 1.77 0.0 ... -0.154 0.010 0.168'/><br>
         <TextureCoordinate point='0 0 0.5 ... 0 0 0.5'/><br>
        </IndexedFaceSet><br>
      </Shape><br>
    <Coordinate USE='Joe_SkinCoord' containerField='skinCoord'/><br>
...<br>
    <Group DEF='skintexturetransform_animation'><br>
      <ScalarInterpolator DEF='skinTexTransTest' key='0 0.2 0.4 0.5 0.6 0.7 0.8 1' keyValue='0 0 0 0 0 1 2 0'/><br>
      <ROUTE fromField='fraction_changed' fromNode='KickTimer' toField='set_fraction' toNode='skinTexTransTest'/><br>
      <ROUTE fromField='value_changed' fromNode='skinTexTransTest' toField='rotation' toNode='kicktextrans'/><br>
    </Group> <br>
...<br>
<br>
, <br>
-----Original Message-----<br>
From: Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>
Sent: Dec 27, 2024 5:23 PM<br>
To: Vincent Marchetti <vmarchetti@kshell.com>, X3D Graphics public mailing list <x3d-public@web3d.org><br>
Cc: Michalis Kamburelis <michalis.kambi@gmail.com><br>
Subject: [x3d-public] Tests for Blender->X3D exporter utilizing texture transformation and per-vertex colors<br>
<br>
Vincent and all,<br>
<br>
( Sorry it took me a while -- Christmas times are busy in offline<br>
activities :) )<br>
<br>
1. I prepared the promised tests of texture transformation in Blender,<br>
to help implementing their handling in the Blender -> X3D exporter.<br>
<br>
They are inside the "blender_tests/texture_transform/" of my<br>
repository <a href="https://github.com/michaliskambi/x3d-tests/" data-auth="NotApplicable">
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2F&data=05%7C02%7Cbrutzman%40nps.edu%7Cceba4b4d4c234122992d08dd26eec101%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638709529230301171%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ZO4iUotBKD2V31mqOuq6fm4inKTDis5C2%2FkxA2YSZtI%3D&reserved=0</a>
 . Browse them<br>
through here <a href="https://github.com/michaliskambi/x3d-tests/tree/master/blender_tests/texture_transform" data-auth="NotApplicable">
https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Ftree%2Fmaster%2Fblender_tests%2Ftexture_transform&data=05%7C02%7Cbrutzman%40nps.edu%7Cceba4b4d4c234122992d08dd26eec101%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638709529230341250%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=MgDedQ80x57UBkrrNlnWe2AjyvTD3roufgzHyJw0pF0%3D&reserved=0</a><br>
. To just download them, it's probably easiest to "git clone" the<br>
whole x3d-tests repo.<br>
<br>
The README inside (<br>
<a href="https://github.com/michaliskambi/x3d-tests/blob/master/blender_tests/texture_transform/README.md" data-auth="NotApplicable">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Fblob%2Fmaster%2Fblender_tests%2Ftexture_transform%2FREADME.md&data=05%7C02%7Cbrutzman%40nps.edu%7Cceba4b4d4c234122992d08dd26eec101%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638709529230367342%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=Y4dgxu%2FKdWNDwq%2BPbA4NjYCvMQTVQKY9mL2piilbQww%3D&reserved=0</a><br>
) already describes everything. A short summary:<br>
<br>
- I tested transforming base, normal, metallic/roughness textures<br>
(same or differently).<br>
<br>
- I added a "real-life example" of using texture transformation (from<br>
Castle Game Engine "examples/fps_game" demo,<br>
<a href="https://github.com/castle-engine/castle-engine/tree/master/examples/fps_game" data-auth="NotApplicable">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcastle-engine%2Fcastle-engine%2Ftree%2Fmaster%2Fexamples%2Ffps_game&data=05%7C02%7Cbrutzman%40nps.edu%7Cceba4b4d4c234122992d08dd26eec101%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638709529230389095%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=GDfn864P1Fy7yrtQcTapwre0BHqd5LUklaP1OFG3WTM%3D&reserved=0</a><br>
).<br>
<br>
- I added glTF exporter outputs, screenshots from Blender, Castle<br>
Model Viewer -> hopefully this all makes it clear what is the desired<br>
output.<br>
<br>
- TODO: I planned to do, but did not do this: I wanted to create a<br>
"desired" X3D files, crafted by hand, to show how a proper X3D output<br>
should look like. Not done yet, simply because of lack of time. I<br>
don't want to keep you waiting, so I send you the tests as they are<br>
now. Ping me if you think you need these "desired" X3D files :)<br>
<br>
2. Moreover, I added tests for per-vertex colors.<br>
<br>
This shows per-vertex colors generated using Blender's "Ambient<br>
Occlusion" (make areas e.g. behind ears nicely darker even without<br>
using real-time shadows) and how they can be multiplied with<br>
material(s) in glTF. This is a feature we talked about -- you<br>
mentioned you wanted to implement it by "premultiplying" the material<br>
* per-vertex color. Hopefully my tests will help make sure it's all<br>
correct :)<br>
<br>
They are in:<br>
<br>
<a href="https://github.com/michaliskambi/x3d-tests/tree/master/blender_tests/per_vertex_colors" data-auth="NotApplicable">https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Ftree%2Fmaster%2Fblender_tests%2Fper_vertex_colors&data=05%7C02%7Cbrutzman%40nps.edu%7Cceba4b4d4c234122992d08dd26eec101%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638709529230409392%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=1kXwxa%2BXccEQGxG0YPawjDh9iLDYlx7I%2Bzx7L5N5WoI%3D&reserved=0</a><br>
<br>
Again, I added glTF exporter outputs, screenshots from Blender, Castle<br>
Model Viewer -> showing what should happen.<br>
<br>
I hope these are useful! Let me know if anything in this is unclear.<br>
<br>
Regards,<br>
Michalis<br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
x3d-public@web3d.org<br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" data-auth="NotApplicable">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
<br>
<br>
</div>
</span></font></div>
</body>
</html>