## 21.6. Isoline Tessellation

If the tessellation primitive mode is `IsoLines`

, a set of independent
horizontal line segments is drawn. The segments are arranged into
connected strips called *isolines*, where the vertices of each isoline
have a constant v coordinate and u coordinates covering the full range
[0,1]. The number of isolines generated is derived from the first outer
tessellation level; the number of segments in each isoline is derived from
the second outer tessellation level. Both inner tessellation levels and
the third and fourth outer tessellation levels have no effect in this
mode.

As with quad tessellation above, isoline tessellation begins with a
rectangle. The
$u=0$
and
$u=1$
edges of the
rectangle are subdivided according to the first outer tessellation level.
For the purposes of this subdivision, the tessellation spacing mode is
ignored and treated as equal_spacing. An isoline is drawn connecting each
vertex on the
$u=0$
rectangle edge to the corresponding vertex
on the
$u=1$
rectangle edge, except that no line is drawn
between (0,1) and (1,1). If the number of isolines on the subdivided
$u=0$
and
$u=1$
edges is
$n$
, this
process will result in
$n$
equally spaced lines with constant v
coordinates of 0,
$\frac{1}{n}, \frac{2}{n}, \ldots,
\frac{n-1}{n}$
.

Each of the
$n$
isolines is then subdivided according to the
second outer tessellation level and the tessellation spacing, resulting in
$m$
line segments. Each segment of each line is emitted by the
tessellator.

The order in which the generated line segments are passed to subsequent
pipeline stages and the order of the vertices in each generated line
segment are both implementation-dependent.