[x3d-public] height and slope TextureCoordinateGenerator modes

Roy Walmsley roy.walmsley at ntlworld.com
Tue Jul 21 14:05:52 PDT 2015


Andreas,

 

Once again, great comment.

 

I have updated Mantis issue 831 with this additional comment.

 

Roy

 

From: Andreas Plesch [mailto:andreasplesch at gmail.com] 
Sent: 21 July 2015 21:32
To: Roy Walmsley
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public] height and slope TextureCoordinateGenerator modes

 

Thanks, Roy, for following up and raising the issue on the Mantis tracker.

It may or may not be relevant but I think I tracked down what inspired the TextureCoordinateGenerator modes. I think it may be the glTexGen opengl function:


https://www.opengl.org/sdk/docs/man2/xhtml/glTexGen.xml

The opengl manual page above even mentions the example of contouring terrain (!), and I suspect that the "VERTEX" mode is supposed to correspond to GL_OBJECT_LINEAR function in some way but I could not find an implementation of the VERTEX mode sofar. So perhaps a VERTEX mode with a parameter field value of "0 1/height_range 0 0" would more or less correspond to the proposed "HEIGHT" mode ?  

 

I think it would make sense to have user-friendly, more targeted modes with sensible defaults as outlined.


The glTexGen function is not available in webGL. It could be recreated in a shader as suggested here

http://stackoverflow.com/questions/5062301/gltexgen-in-opengl-es-2-0

-Andreas

 

 

On Tue, Jul 21, 2015 at 2:26 PM, Roy Walmsley <roy.walmsley at ntlworld.com> wrote:

Andreas,

 

Thank you very much for your extremely interesting and thoughtful suggestions below. 

 

I have raised a Mantis issue on your behalf, directly copying in all of your submission. It is Issue 831 (http://www.web3d.org/member-only/mantis/view.php?id=831) 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.

 

Regards,

 

Roy Walmsley

 

From: x3d-public [mailto:x3d-public-bounces at web3d.org] On Behalf Of Andreas Plesch
Sent: 20 July 2015 15:36
To: X3D Graphics public mailing list
Subject: [x3d-public] height and slope TextureCoordinateGenerator modes

 

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.


The TextureCoordinateGenerator node offers a number of modes intended for advanced graphics effects such as (pseudo-)reflections:


http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/texturing.html#t-Texturecoordgeneration

 

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.

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) ?

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.

Here is an example of the use a height mode:

http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/terrain_height.xhtml

which was tentatively implemented in a forked x3dom (Mesh.js).

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.

Here are two examples:

http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/puddle_slope.xhtml

and 

http://andreasplesch.github.io/x3dom/GeoElevationGrid_texture/face_slope.xhtml

using a tentative implementation in a forked x3dom (Mesh.js).

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.

These modes would be somewhat similar to the existing VERTEX and SPHERE-LOCAL modes but aimed at 1d texture maps.

 

Finally, geospatially registered meshes would need equivalent modes using height above the geoid and slope relative to the local tangential plane to the geoid.

Thanks for reading,

-Andreas


-- 

Andreas Plesch
39 Barbara Rd.
Waltham, MA 02453




-- 

Andreas Plesch
39 Barbara Rd.
Waltham, MA 02453

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20150721/a6520184/attachment-0001.html>


More information about the x3d-public mailing list