[x3d-public] height and slope TextureCoordinateGenerator modes

Andreas Plesch andreasplesch at gmail.com
Mon Jul 20 07:35:54 PDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20150720/66a6bc27/attachment.html>


More information about the x3d-public mailing list