1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
3 <!-- saved from url=(0013)about:internet -->
4 <?xml-stylesheet type=
"text/xsl" href=
"mathml.xsl"?><html xmlns=
"http://www.w3.org/1999/xhtml" xmlns:
pref=
"http://www.w3.org/2002/Math/preference" pref:
renderer=
"mathplayer-dl"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><link rel=
"stylesheet" type=
"text/css" href=
"opengl-man.css" /><title>gl_FrontFacing - OpenGL Shading Language (GLSL)
</title><meta name=
"generator" content=
"DocBook XSL Stylesheets V1.69.1" /></head><body><div class=
"refentry" lang=
"en" xml:
lang=
"en"><a id=
"gl_FrontFacing"></a><div class=
"titlepage"></div><div class=
"refnamediv"><h2>Name
</h2><p>gl_FrontFacing — indicates whether a primitive is front or back facing
</p></div><div class=
"refsynopsisdiv"><h2>Declaration
</h2><div class=
"funcsynopsis"><code class=
"function">in bool gl_FrontFacing;
</code></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"description"></a><h2>Description
</h2><p>
5 Available only in the fragment language,
<code class=
"function">gl_FrontFacing
</code> is an input variable
6 whose value is
<code class=
"function">true
</code> if the fragment belongs to a front-facing primitive and
7 false otherwise. The determination of whether a triangle primitive is front-facing is made by
8 examining the sign of the area of the triangle, including a possible reversal of this sign
9 as controlled by
<code class=
"function">glFrontFace
</code>. One way to compute this area is:
11 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll">
12 <mml:mi>a
</mml:mi><mml:mo>=
</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac>
13 <mml:msubsup><mml:mo>∑
</mml:mo><mml:mrow>
14 <mml:mi>j
</mml:mi><mml:mo>=
</mml:mo><mml:mn>0</mml:mn>
17 <mml:mi>n
</mml:mi><mml:mo>-
</mml:mo><mml:mn>1</mml:mn>
18 </mml:mrow></mml:msubsup>
19 <mml:msubsup><mml:mi>x
</mml:mi><mml:mrow>w
</mml:mrow><mml:mrow><mml:mi>i
</mml:mi></mml:mrow></mml:msubsup>
20 <mml:msubsup><mml:mi>y
</mml:mi><mml:mrow>w
</mml:mrow><mml:mrow><mml:mi>i
</mml:mi><mml:mo>+
</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
22 <mml:msubsup><mml:mi>x
</mml:mi><mml:mrow>w
</mml:mrow><mml:mrow><mml:mi>i
</mml:mi><mml:mo>+
</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
23 <mml:msubsup><mml:mi>y
</mml:mi><mml:mrow>w
</mml:mrow><mml:mrow><mml:mi>i
</mml:mi></mml:mrow></mml:msubsup>
26 where
<mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll"><mml:msubsup><mml:mi>x
</mml:mi><mml:mrow>w
</mml:mrow><mml:mrow><mml:mi>i
</mml:mi></mml:mrow></mml:msubsup></mml:math> and
27 <mml:math xmlns:
mml=
"http://www.w3.org/1998/Math/MathML" overflow=
"scroll"><mml:msubsup><mml:mi>y
</mml:mi><mml:mrow>w
</mml:mrow><mml:mrow><mml:mi>i
</mml:mi></mml:mrow></mml:msubsup></mml:math> are
28 the x and y window coordinates of the
<span class=
"emphasis"><em>i
</em></span>th vertex of the n-vertex polygon.
29 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"versions"></a><h2>Version Support
</h2><div class=
"informaltable"><table border=
"1"><colgroup><col align=
"left" /><col align=
"center" /><col align=
"center" /></colgroup><thead><tr><th align=
"left"><span class=
"bold"><strong>
31 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
33 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
35 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
37 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
39 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
41 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
43 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
45 </strong></span></th><th align=
"left"><span class=
"bold"><strong>
47 </strong></span></th></tr><tr><th align=
"left">
49 </th><th align=
"center">
50 <span class=
"emphasis"><em>Y
</em></span>
51 </th><th align=
"center">
52 <span class=
"emphasis"><em>Y
</em></span>
53 </th><th align=
"center">
54 <span class=
"emphasis"><em>Y
</em></span>
55 </th><th align=
"center">
56 <span class=
"emphasis"><em>Y
</em></span>
57 </th><th align=
"center">
58 <span class=
"emphasis"><em>Y
</em></span>
59 </th><th align=
"center">
60 <span class=
"emphasis"><em>Y
</em></span>
61 </th><th align=
"center">
62 <span class=
"emphasis"><em>Y
</em></span>
63 </th><th align=
"center">
64 <span class=
"emphasis"><em>Y
</em></span>
65 </th></tr></thead></table></div></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"seealso"></a><h2>See Also
</h2><p>
66 <a href=
"gl_FragCoord.xml"><span class=
"citerefentry"><span class=
"refentrytitle">gl_FragCoord
</span></span></a>
67 </p></div><div class=
"refsect1" lang=
"en" xml:
lang=
"en"><a id=
"Copyright"></a><h2>Copyright
</h2><p>
68 Copyright
<span class=
"trademark"></span>©
2011 Khronos Group.
69 This material may be distributed subject to the terms and conditions set forth in
70 the Open Publication License, v
1.0,
8 June
1999.
71 <a href=
"http://opencontent.org/openpub/" target=
"_top">http://opencontent.org/openpub/
</a>.
72 </p></div></div></body></html>