LANG: Proposal for a more efficient surface node

Jim Terhorst ([email protected])
Tue, 9 May 1995 09:14:42 -0600


Hey gang -

I posted this yesterday, but it was buried in a message that discussed other
stuff, so i think some folks may have missed it, so here it is again:

The discussion of Avatars, portals, etc. is all very important,
but i think we need to talk about what we can do in 1.x or 2.0 to improve
performance and decrease network usage. One of the requirements of VRML is:
"Ability to work well over low-bandwidth connections". In the spirit of
decreasing the network load generated by VRML i propose the following node:

Gridded Surface {
fields [ SoSFLong numRowValues, SoSFLong numColumnValues,
SoSFFloat rowStartValue, SoSFFloat columnStartValue,
SoSFFloat rowDelta, SoSFFloat columnDelta, SoMFFloat elevations
]
}

numRowValues - the number of elevation values in each row.
numColumnValues - the number of elevation values in each column.
rowStartValue - the x value for the first value in each row.
columnStartValue - the y value for the first value in each column
rowDelta - the delta for x as you go accross the surface.
columnDelta - the delta in y as you go down the surface.
elevations - one elevation value for each point on the surface.

Consider the savings in network usage of this kind of a surface over an
IndexedFaceSet. If you have a 100 by 100 point surface, and you represent it
with an IndexedFaceset, at minimum you will pass the
following accross the net:
100 * 100 * 3 floating point values for the coordinates.
if you generate 4 sided polygons for the surface:
100 * 100 * 4 long values for the indices

Using the node i described above, you would use:
100 * 100 floating point values for the elevations
1 value for each of the 6 other fields in the node.

It seems to me that alot of VRML spaces will want to have a surface that
describes the terrain the space is in. We could really cut down on network
traffic for those terrain surfaces with a node like the one i have proposed.

jim terhorst (MountainTop::Computing) [email protected]