<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 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></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-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Andreas,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thank you very much for your extremely interesting and thoughtful suggestions below. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I have raised a Mantis issue on your behalf, directly copying in all of your submission. It is Issue 831 (<a href="http://www.web3d.org/member-only/mantis/view.php?id=831">http://www.web3d.org/member-only/mantis/view.php?id=831</a>) for tracking. Your comments will be passed to one of the working groups for consideration and possible inclusion in the next X3D specification release. We will keep you informed of further developments.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Regards,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Roy Walmsley<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> x3d-public [mailto:x3d-public-bounces@web3d.org] <b>On Behalf Of </b>Andreas Plesch<br><b>Sent:</b> 20 July 2015 15:36<br><b>To:</b> X3D Graphics public mailing list<br><b>Subject:</b> [x3d-public] height and slope TextureCoordinateGenerator modes<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>This is a request of feedback on potential new height and slope modes for TextureCoordinateGenerator and their suitability for inclusion in new versions of the X3D specification.<o:p></o:p></p><div><div><p class=MsoNormal><br>The TextureCoordinateGenerator node offers a number of modes intended for advanced graphics effects such as (pseudo-)reflections:<o:p></o:p></p><div><p class=MsoNormal><br><a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/texturing.html#t-Texturecoordgeneration">http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/texturing.html#t-Texturecoordgeneration</a><o:p></o:p></p><div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Many modes involve the eye position which is dynamic and therefore requires dynamic generation of texture coordinates. The other intention of the node seems to be more of a helper node to enable easy generation of static texture coordinates. SPHERE-LOCAL, VERTEX and NOISE modes fall into this category as I understand them.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Is this a fair description of the purpose of the TextureCoordinateGenerator node ? What does the VERTEX mode do ? Literally use the x and y (or z?)  components of a vertex as texture coordinates (which then could be scaled with a TextureTransform) ?<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>In data visualization it is often useful to color the y component (height) of a mesh. This is particularly evident for ElevationGrids where contouring is a proven visualization method. Therefore it would be very useful to have a new HEIGHT mode which generates texture coordinates based on the y coordinate. The most useful default would be to automatically scale to the range in height of the mesh. The parameter field could be used to define a custom range in height which corresponds to the 0 to 1 range of the S texture coordinate. T would be set to 0, eg. a 1d texture map would be expected.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Here is an example of the use a height mode:<br><br><a href="http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/terrain_height.xhtml">http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/terrain_height.xhtml</a><o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>which was tentatively implemented in a forked x3dom (Mesh.js).<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Similary, it is often useful to visualize the spatial gradient of a surface or the slope. A new SLOPE mode for TextureCoordinateGenerator would generate texture coordinates based on the local slope angle ( implementations could derive the slope on the local normal ). By default slopes from 0 to 90 degrees would be scaled to the 0 to 1 range of the S texture coordinate. The  parameter field could be used to define a custom range. T would be set to 0 and a 1d texture map would be expected.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Here are two examples:<br><br><a href="http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/puddle_slope.xhtml">http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/puddle_slope.xhtml</a><o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>and <br><br><a href="http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/face_slope.xhtml">http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/face_slope.xhtml</a><o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>using a tentative implementation in a forked x3dom (Mesh.js).<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>One could also imagine (and quite easily implement) another mode "HEIGHT-SLOPE" which uses both attributes as S and T respectively  and a 2d texture map as suggested by Simon Thum on the geospatial list.<o:p></o:p></p></div><div><p class=MsoNormal>These modes would be somewhat similar to the existing VERTEX and SPHERE-LOCAL modes but aimed at 1d texture maps.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Finally, geospatially registered meshes would need equivalent modes using height above the geoid and slope relative to the local tangential plane to the geoid.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-bottom:12.0pt'>Thanks for reading,<o:p></o:p></p></div><div><p class=MsoNormal>-Andreas<o:p></o:p></p></div><div><p class=MsoNormal><br>-- <o:p></o:p></p><div><p class=MsoNormal>Andreas Plesch<br>39 Barbara Rd.<br>Waltham, MA 02453<o:p></o:p></p></div></div></div></div></div></div></div></div></body></html>