<div dir="ltr">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.<br><div><div><br>The TextureCoordinateGenerator node offers a number of modes intended for advanced graphics effects such as (pseudo-)reflections:<br><div><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><br><div><div><br></div><div>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.<br><br></div><div>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) ?<br><br></div><div>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.<br><br></div><div>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><br><br></div><div>which was tentatively implemented in a forked x3dom (Mesh.js).<br><br></div><div>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.<br><br></div><div>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><br><br></div><div>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><br><br></div><div>using a tentative implementation in a forked x3dom (Mesh.js).<br><br></div><div>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.<br><br></div><div>These modes would be somewhat similar to the existing VERTEX and SPHERE-LOCAL modes but aimed at 1d texture maps.<br></div><div><br></div><div>Finally, geospatially registered meshes would need equivalent modes using height above the geoid and slope relative to the local tangential plane to the geoid.<br><br></div><div>Thanks for reading,<br><br></div><div>-Andreas<br></div><div><br>-- <br><div class="gmail_signature">Andreas Plesch<br>39 Barbara Rd.<br>Waltham, MA 02453</div>
</div></div></div></div></div></div>