<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">Hi Holger!<div><br><div>This is great news!  We thank you for being a part of our community and evolving X3D. </div><div><br></div><div>Glad to see positive feedback from X3D users  and developers. These glTF extensions were much needed for the advancement for X3D!  .</div><div><br></div><div><div>Do we have permission to include this new release of X_ITE on the Web3D website as a <a href="https://web3d.org/news">news item</a>? The new release brings several enhancements. It would be beneficial for the Web3D community to have easy  access to the latest version. </div><div><br></div><div>Go X_ITE! and X3D!</div><div><br></div><div><span style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.298);">Best Regards,</span></div><div dir="ltr"><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.298);">Anita-Havele</span></div><br></div><div dir="ltr"><br><blockquote type="cite">On Jun 26, 2024, at 8:56 AM, Michalis Kamburelis via x3d-public <x3d-public@web3d.org> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><span>Great news! I'm reading your node docs, excellent work in getting this</span><br><span>specified and implemented!</span><br><span></span><br><span>I have a plan to implement these material extensions in Castle Game</span><br><span>Engine / Castle Model Viewer as well (</span><br><span>https://castle-engine.io/roadmap#gltf_material_features ). Looks like</span><br><span>you beat me to it with X_ITE, and it makes me very happy :)  (Also</span><br><span>because it means I can look at your nodes and code and my task is much</span><br><span>easier :) ).</span><br><span></span><br><span>Some initial thoughts about the spec of new functionality:</span><br><span></span><br><span>1. Expressing functionality as "extensions" of PhysicalMaterial (I see</span><br><span>you have "PhysicalMaterial.extensions", MFNode with</span><br><span>X3DMaterialExtensionNode,</span><br><span>https://create3000.github.io/x_ite/components/shape/physicalmaterial/</span><br><span>):</span><br><span></span><br><span>    This is great solution, this expressed the intention nicely (this</span><br><span>information is extra data, "extension", and without it things look</span><br><span>worse but make sense).</span><br><span></span><br><span>    I'm looking at this both from Castle Game Engine / Castle Model</span><br><span>Viewer author perspective, also from the perspective of future X3D</span><br><span>versions. A lot of your extensions, including the</span><br><span>"PhysicalMaterial.extensions" field and nodes like</span><br><span>SheenMaterialExtension, ClearcoatMaterialExtension could definitely be</span><br><span>part of future X3D (4.1?) version.</span><br><span></span><br><span>2. Comments specifically about SpecularGlossinessMaterial (</span><br><span>https://create3000.github.io/x_ite/components/x-ite/specularglossinessmaterial/</span><br><span>):</span><br><span></span><br><span>    Note that KHR_materials_pbrSpecularGlossiness is deprecated, and</span><br><span>the recommendation is to follow instead KHR_materials_specular which</span><br><span>addresses a similar use-case. In Castle Game Engine / Castle Model</span><br><span>Viewer we deliberately decided, for this reason, to not support</span><br><span>KHR_materials_pbrSpecularGlossiness and just explain it to users (</span><br><span>https://castle-engine.io/sketchfab ).</span><br><span></span><br><span>    I of course understand it is a practical decision, if your users</span><br><span>demand KHR_materials_pbrSpecularGlossiness then</span><br><span>SpecularGlossinessMaterial makes sense. I'm just saying that this</span><br><span>should probably not go to future X3D spec.</span><br><span></span><br><span>    Just like Khronos recommends KHR_materials_specular over</span><br><span>KHR_materials_pbrSpecularGlossiness, we should in X3D recommend</span><br><span>SpecularMaterialExtension over SpecularGlossinessMaterial.</span><br><span></span><br><span>3. I see you added also UnlitMaterialExtension, can you expand why do</span><br><span>you need it?</span><br><span></span><br><span>    I know your approach is a bit more consistent with glTF, that has</span><br><span>"physical material with KHR_materials_unlit".</span><br><span></span><br><span>    That said, I deliberately deviated here for X3D 4.0, adding</span><br><span>instead a separate node "UnlitMaterial". "UnlitMaterial" does feel</span><br><span>more natural -- being unlit is, conceptually, not an extension of PBR</span><br><span>lighting equations (or PBR specular, or Phong lighting equations...).</span><br><span>Being unlit means you throw away the usual lighting equations, and</span><br><span>just have very simple situation where resulting color is emissiveColor</span><br><span>* optional emissiveTexture. This makes "UnlitMaterial" spec simple,</span><br><span>this also sidesteps glTF question (that used to be ambiguous in older</span><br><span>glTF spec version) of how to combine glTF base and emissive color in</span><br><span>case of KHR_materials_unlit (because in X3D, we just have</span><br><span>"UnlitMaterial" with "UnlitMaterial,emissiveColor" -- it's simpler),</span><br><span>this also allows natural optimizations on the renderer side (unlit can</span><br><span>use completely different set of simple shaders).</span><br><span></span><br><span>    So ideally, I see "UnlitMaterial" as X3D-equivalent of</span><br><span>"KHR_materials_unlit". If there is a need for UnlitMaterialExtension,</span><br><span>I'm curious to know why, and can we avoid it, to keep X3D spec simple</span><br><span>:)</span><br><span></span><br><span>Many thanks for your work. This is great advancement for X3D! I</span><br><span>absolutely recommend everyone on this list to click on Holger's links</span><br><span>to demos and extensions, we absolutely should look at this</span><br><span>functionality as potentially becoming available in other X3D browsers</span><br><span>(I will definitely want to implement (subset of it) in Castle Game</span><br><span>Engine / Castle Model Viewer) and in future X3D spec versions.</span><br><span></span><br><span>Best regards,</span><br><span>Michalis</span><br><span></span><br><span></span><br><span>wt., 25 cze 2024 o 11:52 Holger Seelig via x3d-public</span><br><span><x3d-public@web3d.org> napisał(a):</span><br><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>With the current release v10.0.1, all glTF material extensions are now available, i.e. when a glTF file is parsed, these extensions are automatically converted to X3D. There is now an X3D node for each glTF extension. These nodes can also be referenced directly in X3D files. Extensions for glTF materials are converted to the new X3DMaterialExtensionNode nodes, which can be used as a child of PhysicalMaterial node and the new SpecularGlossinessMaterial node. These material nodes now have a new field »extensions« for this purpose. The introduction of the »extensions« field has only a minimal impact and leads to the greatest possible compatibility.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>To get an idea of what a great difference these new material extensions make, check out our glTF Sample Viewer. Take some time and look through all the examples. I am sure you will be amazed.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>Here are three selected examples, but there are many more:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/?url=AnisotropyBarnLamp</span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/?url=DragonAttenuation</span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/?url=MosquitoInAmber</span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/laboratory/gltf-sample-viewer/?url=ToyCar</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>Implemented glTF Extensions:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>All glTF extensions implemented with this version are listed below:</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>X3DOneSidedMaterialNode</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>* KHR_materials_pbrSpecularGlossiness implemented as SpecularGlossinessMaterial node.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>X3DMaterialExtensionNode</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>* KHR_materials_anisotropy implemented as AnisotropyMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_clearcoat implemented as ClearcoatMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_dispersion implemented as DispersionMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_emissive_strength implemented as EmissiveStrengthMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_ior implemented as IORMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_iridescence implemented as IridescenceMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_sheen implemented as SheenMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_specular implemented as SpecularMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_transmission implemented as TransmissionMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_unlit implemented as UnlitMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span>* KHR_materials_volume implemented as VolumeMaterialExtension node.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>Switch</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>* KHR_materials_variants implemented as Switch node.</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>These new nodes are initially available in the X_ITE component and documented here:</span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/components/#x_ite</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>Make X3D even better!</span><br></blockquote><blockquote type="cite"><span>Best regards,</span><br></blockquote><blockquote type="cite"><span>Holger</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>--</span><br></blockquote><blockquote type="cite"><span>Holger Seelig</span><br></blockquote><blockquote type="cite"><span>Leipzig, Germany</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>holger.seelig@yahoo.de</span><br></blockquote><blockquote type="cite"><span>https://create3000.github.io/x_ite/</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>_______________________________________________</span><br></blockquote><blockquote type="cite"><span>x3d-public mailing list</span><br></blockquote><blockquote type="cite"><span>x3d-public@web3d.org</span><br></blockquote><blockquote type="cite"><span>http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span><br></blockquote><span></span><br><span>_______________________________________________</span><br><span>x3d-public mailing list</span><br><span>x3d-public@web3d.org</span><br><span>http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span><br></div></blockquote></div></div></body></html>