This example shows the basic definition of a polygon based objec.

#VRML V2.0 utf8

Group {
   children [
      Shape {
         appearance
         Appearance {
            material
            Material {
               ambientIntensity 0.1
               diffuseColor     1 1 1
            }
         }

Here, we give the object some color and surface properties.  The object is
white and it is not reflecting any light.  The object is mildly lighted
(defined by ambientIntensity), even when there is no light defined in the
world.

         geometry
         IndexedFaceSet {
            coord
            Coordinate {
               point    [ 0 5 0,
                          -2.5 0 -2.5,
                          2.5 0 -2.5,
                          2.5 0 2.5,
                          -2.5 0 2.5 ]
            }

            solid       FALSE
            creaseAngle 0.5
            coordIndex  [ 0, 4, 3, -1, 0, 3, 2, -1,
                          0, 2, 1, -1, 0, 1, 4, -1,
                          1, 3, 4, -1, 1, 2, 3, -1 ]
         }

IndexedFaceSet is a geometry node that can be used in geometry field
of a Shape node.  It defines a set of such faces to create an object of
arbitrary shape.  Usually one builds objects out of simple triangular
faces.  Its coord field holds the set of coordinates.  The point field
defines the vertices of the object.  There are five points defined here.
The points are labeled from 0 to 4.  Solid field if TRUE indicates that
Shape encloses a volume and one can use so-called backface culling.
CreaseAngle field defines a crease angle threshold (in radians).
CoordIndex field defines the path to connect the coordinates given in the
coord field to build a polyline.  Each value in the coordIndex is an
integer index specifying a coordinate from coord field.  Six polygons are
defined here.  Each polygon is a triangle, so three points are named in
the vertices list and the -1 terminates the list.  Note, a polygon may have
an arbitrary number of vertices.
      }
     ]
}