<div dir="ltr"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Maybe this is of interest to you, here is an glTF example file loaded in the X_ITE Playground that demonstrates the use of a the glTF extension EXT_lights_image_based, and this file is converted to X3D.<br><br>Original glTF file:<br><a href="https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf">https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf</a><br><br>glTF file loaded into Playground:<br><a href="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf">https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf</a></blockquote><div><br></div><div>original archive at</div><div><ul><li>glTF-Sample-Assets/Models/EnvironmentTest at main · KhronosGroup/glTF-Sample-Assets</li><li><a href="https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/EnvironmentTest">https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/EnvironmentTest</a></li></ul></div><div>cool!</div><div><br></div><img src="cid:ii_mkhknnvm0" alt="image.png" width="562" height="148"><br><div> </div><div>If I didn't miss anything, it looks like you have all X3D 4.0 nodes with EnvironmentLight added:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="color:rgb(0,0,0);background-color:rgb(255,255,254);font-family:Consolas,"Courier New",monospace;font-size:14px;line-height:19px;white-space:pre"><div></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">EnvironmentLight</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'EnvironmentLight1'</span></div><div> <span style="color:rgb(255,0,0)">rotation</span>=<span style="color:rgb(0,0,255)">'0 0 1 3.14159265358979'</span></div><div> <span style="color:rgb(255,0,0)">diffuseCoefficients</span>=<span style="color:rgb(0,0,255)">'1.883914, 1.233669, 1.681576, 1.000511, 0.86914, 1.488788, 0.5603794, 0.2578132, 0.1937483, 1.307234, 0.6636485, 0.6695344, 0.5640031, 0.3793894, 0.4919433, 0.2725677, 0.1433439, 0.1155891, -0.1381991, -0.05709685, -0.04879314, 0.535081, 0.2632305, 0.2453104, 0.4328334, 0.1263784, -0.004152848'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">ComposedCubeMapTexture</span> <span style="color:rgb(255,0,0)">containerField</span>=<span style="color:rgb(0,0,255)">'specularTexture'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">ImageTexture</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'iblImage37043-pos-z-0'</span> <span style="color:rgb(255,0,0)">containerField</span>=<span style="color:rgb(0,0,255)">'frontTexture'</span></div><div> <span style="color:rgb(255,0,0)">description</span>=<span style="color:rgb(0,0,255)">'iblImage37043_pos_z_0'</span></div><div> url='"data:image/png;base64,</div></div></blockquote><div><i>// much hex data omitted...</i></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="color:rgb(0,0,0);background-color:rgb(255,255,254);font-family:Consolas,"Courier New",monospace;font-size:14px;line-height:19px;white-space:pre"><div>iuFyVIOGxTnKzzHlwP8HnrBG51BNh5kAAAAASUVORK5CYII="'/></div><div> </<span style="color:rgb(255,0,0)">ComposedCubeMapTexture</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"></</span><span style="color:rgb(128,0,0)">EnvironmentLight</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">Viewpoint</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'render-camera'</span></div><div> <span style="color:rgb(255,0,0)">description</span>=<span style="color:rgb(0,0,255)">'render camera'</span></div><div> <span style="color:rgb(255,0,0)">position</span>=<span style="color:rgb(0,0,255)">'-0.7599077 7.708761 27.74338'</span></div><div> <span style="color:rgb(255,0,0)">orientation</span>=<span style="color:rgb(0,0,255)">'-0.998045145483539 -0.0623108383540335 -0.00482151432193969 0.15475694683352'</span></div><div> <span style="color:rgb(255,0,0)">centerOfRotation</span>=<span style="color:rgb(0,0,255)">'-0.5564079 3.781651 -1.096268'</span></div><div> <span style="color:rgb(255,0,0)">fieldOfView</span>=<span style="color:rgb(0,0,255)">'0.6024157'</span></div><div> <span style="color:rgb(255,0,0)">nearDistance</span>=<span style="color:rgb(0,0,255)">'0.001'</span></div><div> <span style="color:rgb(255,0,0)">farDistance</span>=<span style="color:rgb(0,0,255)">'200'</span><span style="color:rgb(128,0,0)">/</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">Transform</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'ENV-Spheres'</span></div><div> <span style="color:rgb(255,0,0)">translation</span>=<span style="color:rgb(0,0,255)">'-0.5564079 4.774585 -1.096268'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">Shape</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'Metallic0-N3D'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">Appearance</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'MetallicSpheresMat'</span></div><div> <span style="color:rgb(255,0,0)">alphaMode</span>=<span style="color:rgb(0,0,255)">'OPAQUE'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">PhysicalMaterial</span></div><div> <span style="color:rgb(255,0,0)">metallicRoughnessTextureMapping</span>=<span style="color:rgb(0,0,255)">'TEXCOORD_0'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">ImageTexture</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'tmp-image-pie-dc1e-1a22-fbf9roughness-map-roughness-tmp-image-pie-dc1e-1a22-fbf9metal-map-metallic-0-texture'</span> <span style="color:rgb(255,0,0)">containerField</span>=<span style="color:rgb(0,0,255)">'metallicRoughnessTexture'</span></div><div> <span style="color:rgb(255,0,0)">url</span>=<span style="color:rgb(0,0,255)">'"EnvironmentTest_images/roughness_metallic_0.png"'</span></div><div> <span style="color:rgb(255,0,0)">colorSpaceConversion</span>=<span style="color:rgb(0,0,255)">'false'></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">TextureProperties</span></div><div> <span style="color:rgb(255,0,0)">anisotropicDegree</span>=<span style="color:rgb(0,0,255)">'16'</span></div><div> <span style="color:rgb(255,0,0)">generateMipMaps</span>=<span style="color:rgb(0,0,255)">'true'</span></div><div> <span style="color:rgb(255,0,0)">minificationFilter</span>=<span style="color:rgb(0,0,255)">'AVG_PIXEL_AVG_MIPMAP'</span></div><div> <span style="color:rgb(255,0,0)">magnificationFilter</span>=<span style="color:rgb(0,0,255)">'AVG_PIXEL'</span><span style="color:rgb(128,0,0)">/</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"></</span><span style="color:rgb(128,0,0)">ImageTexture</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"></</span><span style="color:rgb(128,0,0)">PhysicalMaterial</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">TextureTransform</span> <span style="color:rgb(255,0,0)">DEF</span>=<span style="color:rgb(0,0,255)">'_1'</span></div><div> <span style="color:rgb(255,0,0)">translation</span>=<span style="color:rgb(0,0,255)">'0 -1'</span></div><div> <span style="color:rgb(255,0,0)">scale</span>=<span style="color:rgb(0,0,255)">'1 -1'</span><span style="color:rgb(128,0,0)">/</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"></</span><span style="color:rgb(128,0,0)">Appearance</span><span style="color:rgb(0,0,255)">></span></div><div> <span style="color:rgb(0,0,255)"><</span><span style="color:rgb(128,0,0)">IndexedTriangleSet</span></div><div> <span style="color:rgb(255,0,0)">solid</span>=<span style="color:rgb(0,0,255)">'false'</span></div></div></blockquote><div><i> // etc.</i></div><div><br></div><div>Shall I add this .x3d model to the X3D Examples Archive for continuing testing?</div><div><br></div><div>I might need your help selecting the correct original specularTexture image at</div><div><ul><li><a href="https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/EnvironmentTest/glTF/EnvironmentTest_images">https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/EnvironmentTest/glTF/EnvironmentTest_images</a></li><li><a title="roughness_metallic_0.png" aria-label="roughness_metallic_0.png, (File)" class="gmail-Link--primary" href="https://github.com/KhronosGroup/glTF-Sample-Assets/blob/main/Models/EnvironmentTest/glTF/EnvironmentTest_images/roughness_metallic_0.png" style="box-sizing:border-box;text-decoration-line:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;color:rgb(31,35,40)">roughness_metallic_0.png</a> and
<a title="roughness_metallic_0.png" aria-label="roughness_metallic_0.png, (File)" class="gmail-Link--primary" href="https://github.com/KhronosGroup/glTF-Sample-Assets/blob/main/Models/EnvironmentTest/glTF/EnvironmentTest_images/roughness_metallic_1.png" style="box-sizing:border-box;text-decoration-line:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;color:rgb(31,35,40)">roughness_metallic_1.png</a></li></ul></div><div>Not sure about nonstandard<span style="color:rgb(0,0,0);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;background-color:rgb(255,255,254)"> </span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;background-color:rgb(255,255,254);color:rgb(255,0,0)">alphaMode</span><span style="color:rgb(0,0,0);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;background-color:rgb(255,255,254)">=</span><span style="font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre;background-color:rgb(255,255,254);color:rgb(0,0,255)">'OPAQUE'</span></div><div><br></div><div>Steady progress always much appreciated, thanks as ever. Onward we go...</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Fri, Jan 16, 2026 at 8:35 AM Holger Seelig <<a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Maybe this is of interest to you, here is an glTF example file loaded in the X_ITE Playground that demonstrates the use of a the glTF extension EXT_lights_image_based, and this file is converted to X3D.<div><br></div><div>Original glTF file:</div><div><a href="https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf" target="_blank">https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf</a></div><div><div><br></div><div>glTF file loaded into Playground:</div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf" target="_blank">https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/master/Models/EnvironmentTest/glTF-IBL/EnvironmentTest.gltf</a></div><div><br></div><div>Best regards,</div><div>Holger</div><div><br id="m_-4888090738280142577lineBreakAtBeginningOfMessage"><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div dir="auto" style="text-align:start;text-indent:0px"><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">—</div><div style="color:rgb(0,0,0);letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none">Holger Seelig<br><a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a><br><br></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
<div><br></div></div></div></div></blockquote></div></div>