is the value computed for the coordinate named in <parameter>coord</parameter>,
<inlineequation><mml:math>
<!-- eqn: p sub 1:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: p sub 2:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: p sub 3:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
and
<inlineequation><mml:math>
<!-- eqn: p sub 4:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:math></inlineequation>
are the four values supplied in <parameter>params</parameter>, and
<inlineequation><mml:math>
<!-- eqn: x sub o:-->
<mml:msub><mml:mimathvariant="italic">x</mml:mi>
<mml:mimathvariant="italic">o</mml:mi>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: y sub o:-->
<mml:msub><mml:mimathvariant="italic">y</mml:mi>
<mml:mimathvariant="italic">o</mml:mi>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: z sub o:-->
<mml:msub><mml:mimathvariant="italic">z</mml:mi>
<mml:mimathvariant="italic">o</mml:mi>
</mml:msub>
</mml:math></inlineequation>,
and
<inlineequation><mml:math>
<!-- eqn: w sub o:-->
<mml:msub><mml:mimathvariant="italic">w</mml:mi>
<mml:mimathvariant="italic">o</mml:mi>
</mml:msub>
</mml:math></inlineequation>
are the object coordinates of the vertex.
This function can be used, for example, to texture-map terrain using sea level
as a reference plane
(defined by
<inlineequation><mml:math>
<!-- eqn: p sub 1:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: p sub 2:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: p sub 3:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
and
<inlineequation><mml:math>
<!-- eqn: p sub 4:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:math></inlineequation>).
The altitude of a terrain vertex is computed by the <constant>GL_OBJECT_LINEAR</constant>
coordinate generation function as its distance from sea level;
that altitude can then be used to index the texture image to map white snow
onto peaks and green grass onto foothills.
</para>
<para>
If the texture generation function is <constant>GL_EYE_LINEAR</constant>, the function
</para>
<para>
<informalequation><mml:math>
<!-- eqn: g = {p sub 1} sup prime * x sub e + {p sub 2} sup prime * y sub e + {p sub 3} sup prime * z sub e + {p sub 4} sup prime * w sub e:-->
<mml:mrow>
<mml:mimathvariant="italic">g</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:msub><mml:mimathvariant="italic">x</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:msub><mml:mimathvariant="italic">y</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:msub><mml:mimathvariant="italic">z</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:msub><mml:mimathvariant="italic">w</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</para>
<para>
is used, where
</para>
<para>
<informalequation><mml:math>
<!-- eqn: left ( {p sub 1} sup prime {p sub 2} sup prime {p sub 3} sup prime {p sub 4} sup prime right ) = left ( p sub 1 p sub 2 p sub 3 p sub 4 right ) M sup -1:-->
<mml:mrow>
<mml:mfencedopen="("close=")">
<mml:mrow>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>⁢</mml:mo>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>⁢</mml:mo>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
<mml:mo>⁢</mml:mo>
<mml:msup><mml:mfencedopen=""close="">
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mfenced>
<mml:mo>″</mml:mo>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mfencedopen="("close=")">
<mml:mrow>
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>⁢</mml:mo>
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>⁢</mml:mo>
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>⁢</mml:mo>
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>⁢</mml:mo>
<mml:msup><mml:mimathvariant="italic">M</mml:mi>
<mml:mn>-1</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</para>
<para>
and
<inlineequation><mml:math>
<!-- eqn: x sub e:-->
<mml:msub><mml:mimathvariant="italic">x</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: y sub e:-->
<mml:msub><mml:mimathvariant="italic">y</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: z sub e:-->
<mml:msub><mml:mimathvariant="italic">z</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:math></inlineequation>,
and
<inlineequation><mml:math>
<!-- eqn: w sub e:-->
<mml:msub><mml:mimathvariant="italic">w</mml:mi>
<mml:mimathvariant="italic">e</mml:mi>
</mml:msub>
</mml:math></inlineequation>
are the eye coordinates of the vertex,
<inlineequation><mml:math>
<!-- eqn: p sub 1:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: p sub 2:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: p sub 3:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
</mml:math></inlineequation>,
and
<inlineequation><mml:math>
<!-- eqn: p sub 4:-->
<mml:msub><mml:mimathvariant="italic">p</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
</mml:math></inlineequation>
are the values supplied in <parameter>params</parameter>, and