Original Spec| Sample

定義

ElevationGrid { 
  eventIn      MFFloat  set_height
  exposedField SFNode   color             NULL
  exposedField SFNode   normal            NULL
  exposedField SFNode   texCoord          NULL
  field        MFFloat  height            []      # (-,)
  field        SFBool   ccw               TRUE
  field        SFBool   colorPerVertex    TRUE
  field        SFFloat  creaseAngle       0       # [0,]
  field        SFBool   normalPerVertex   TRUE
  field        SFBool   solid             TRUE
  field        SFInt32  xDimension        0       # [0,)
  field        SFFloat  xSpacing          1.0     # (0,)
  field        SFInt32  zDimension        0       # [0,)
  field        SFFloat  zSpacing          1.0     # (0,)
}
地形をあらわすために使います。xy平面上で長方形のメッシュを切って各点での y方向の高さを与えることによって、地形を定義することが出来ます。
set_height
後述のheightを設定するための入力イベント
color
色を設定します。Colorノードを使います。
normal
法線を設定します。これによって照明を当てたときの色が変わります。 Normalノードを使います。
texCoord
テキスチャを貼りつけるときの座標を定義します。 TextureCoordinateノード使用。
height
メッシュ上の高さを定義します。
ccw
面の法線を自動的に面の情報から生成する際にその方向を右手法で行う
colorPerVertex 前述の色の設定が頂点毎か面毎か設定します。
creaseAngle
二つの面が接するときその角度がここに指定されたもの以下 の場合、 その辺での法線が滑らかに変化するようになります。
normalPerVertex
前述の法線の設定が頂点毎か面毎か設定します。
solid
面が両方から見えるかどうかの指定. TRUEなら片面しか見えない。
xDimension
x方向のメッシュの数
xSpacing
x方向のメッシュの間隔。x座標で0からxDimension*xSpacingまでの地形 を定義することなります。
zDimension
z方向のメッシュの数
zSpacing
z方向のメッシュの間隔 z座標で0からzDimension*zSpacingまでの地形 を定義することなります。

サンプル

#VRML V2.0 utf8
Shape {
  geometry ElevationGrid {
    xDimension 3
    zDimension 3
    height [0 .5 0, .3 1 .3, 0 -.5 0]
    solid FALSE
  }
}