<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=utf-8"><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;}
/* 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.EmailStyle20
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@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:965697667;
        mso-list-type:hybrid;
        mso-list-template-ids:-1133613714 1763504462 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:;
        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:;
        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:;
        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:;
        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:;
        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:;
        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>Thanks for an interesting candidate capability.  Some references:<o:p></o:p></p><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'>Wikipedia: Color space<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><a href="https://en.wikipedia.org/wiki/Color_space">https://en.wikipedia.org/wiki/Color_space</a><o:p></o:p></li></ul><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'>Wikipedia: List of color spaces and their uses<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://en.wikipedia.org/wiki/List_of_color_spaces_and_their_uses<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>From glTF 2.0<o:p></o:p></p><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'>3.9.3. Additional Textures<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>emissive : The emissive texture and factor control the color and intensity of the light being emitted by the material. The texture MUST contain 8-bit values encoded with the sRGB opto-electronic transfer function so RGB values MUST be decoded to real linear values before they are used for any computations. To achieve correct filtering, the transfer function SHOULD be decoded before performing linear interpolation.<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#additional-textures<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>References<o:p></o:p></li><li style='color:#222222;margin-top:0in;margin-bottom:4.5pt;mso-list:l0 level1 lfo1;background:white'><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>IEC 61966-2-1 <em><span style='font-family:"Arial",sans-serif'>Default RGB colour space - sRGB</span></em> <a href="https://webstore.iec.ch/publication/6169"><span style='color:#0068B0;text-decoration:none'>https://webstore.iec.ch/publication/6169</span></a><o:p></o:p></span></li></ul><table class=MsoNormalTable border=0 cellpadding=0 width=622 style='width:466.5pt;box-sizing: border-box;border-spacing: 0px'><tr style='box-sizing: border-box'><td width=80 style='width:60.0pt;padding:6.75pt 7.5pt 6.75pt 7.5pt;box-sizing: border-box;font-size:inherit;display:table-cell'></td><td style='border:none;border-left:solid #DDDDDD 1.0pt;padding:6.75pt 15.0pt 6.75pt 13.5pt;box-sizing: border-box;font-size:inherit;display:table-cell'><p class=MsoNormal><span style='font-size:9.0pt;color:black'>Note<o:p></o:p></span></p><p style='margin:0in;box-sizing: border-box;text-rendering: optimizelegibility'><span style='font-size:9.0pt;color:#365E7A'>The encoding characteristics of sRGB are freely available from ICC: <a href="https://www.color.org/chardata/rgb/srgb.xalter"><span style='color:#0068B0;text-decoration:none'>https://www.color.org/chardata/rgb/srgb.xalter</span></a><o:p></o:p></span></p></td></tr></table><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>(which is at International Color Consortium)<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Additional references welcome<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Each mention of color profile that I found in glTF indicated that SRGB profile usage was required.  Didn’t see any other options.  Wondering if there is further work in glTF extensions on this topic.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Prior attempts to permit gamma definition in X3D did not converge on an acceptable solution.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I did not find relevant mention of “color space” or “SRGB” in X3D 4.0 specification.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If we can align with other standards, particularly glTF evolution, then this field certainly seems like a candidate to become a Web3D Consortium Recommended Practice in anticipation of future X3D 4.1 Architecture.  No doubt we would want to look carefully across the specification to ensure that color was handled consistently and interoperably.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Continued scrutiny and development welcome.  Have fun with X3D color control!  8)<o:p></o:p></p><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.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:9.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:9.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> <b>On Behalf Of </b>Holger Seelig<br><b>Sent:</b> Thursday, September 21, 2023 3:06 AM<br><b>To:</b> Andreas Plesch <andreasplesch@gmail.com><br><b>Cc:</b> X3D <x3d-public@web3d.org><br><b>Subject:</b> Re: [x3d-public] Need for colorspaceConversion field in ImageTexture, glTF compatibility<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>I have now also added the field `colorSpaceConversion` in X_ITE to the ImageTexture node, also in the same notation. Everything was already prepared for it.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I can't show an example yet, because everything is still in the dev branch.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The signature of the new field looks like this:<o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:8.5pt;color:black;background:white'><br><br></span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-size:8.5pt;color:black;background:white'>SFBool [] colorSpaceConversion TRUE</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Best regards,<o:p></o:p></p></div><div><p class=MsoNormal>Holger<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><div><div><div><div><div><div><div><p class=MsoNormal><span style='color:black'>--<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>Holger Seelig<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>Leipzig, Germany<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><a href="https://create3000.github.io/x_ite/">https://create3000.github.io/x_ite/</a><o:p></o:p></span></p></div></div></div></div></div></div></div></div><div><p class=MsoNormal><br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>Am 21.09.2023 um 08:26 schrieb Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>>:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Coming back to color profiles potentially embedded in some important<br>image formats, I added a colorSpaceConversion field to ImageTexture in<br>x3dom:<br><br><a href="https://andreasplesch.github.io/x3dom/dist/doc/author/Texturing/ImageTexture.html">https://andreasplesch.github.io/x3dom/dist/doc/author/Texturing/ImageTexture.html</a><br><br>It is by default true for normal X3D use and can be false for loading<br>glTF textures correctly:<br><br><a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/817bc44089a7b7545149cf12acdd7c86/raw/75242ebfea03048d0f4939e1656c5063c9544d11/TextureEncodingTest.x3d">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/817bc44089a7b7545149cf12acdd7c86/raw/75242ebfea03048d0f4939e1656c5063c9544d11/TextureEncodingTest.x3d</a><br><br>It is trivial to change the field name if there are other suggestions.<br><br>-Andreas<br><br>On Tue, Aug 29, 2023 at 1:53 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><br>Following up after some work:<br><br>On Thu, Aug 24, 2023 at 11:15 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><br>On Thu, Aug 24, 2023 at 9:14 AM Michalis Kamburelis<br><<a href="mailto:michalis.kambi@gmail.com">michalis.kambi@gmail.com</a>> wrote:<br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><br>1. As for colorspaceConversion:<br><br>I don't think we want to avoid adding X3D field for this :)<o:p></o:p></p></blockquote><p class=MsoNormal><br>Well, it is worth thinking through options if it means smarter<br>solutions can be discovered.<br><br><br><o:p></o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal>I'm all after adding X3D field to account for this -- that is, say<br>explicitly whether ICC profile should be honored or not, so that all<br>cases are satisfied. I'm cool with colorspaceConversion name.<o:p></o:p></p></blockquote><p class=MsoNormal><o:p> </o:p></p></blockquote><p class=MsoNormal style='margin-bottom:12.0pt'>...snip<br><br>After some thought I do think that a new field is needed for<br>ImageTexture (and MovieTexture, and Background ?).<br>"colorspaceConversion" or "colorSpaceConversion" or perhaps something<br>shorter like "colorProfile"  ?<br><br>x3dom will probably use the webgl texture unpacking parameter.<o:p></o:p></p></blockquote></div></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></body></html>