Available only in the fragment language, gl_FrontFacing is an input variable whose value is true if the fragment belongs to a front-facing primitive and false otherwise. The determination of whether a triangle primitive is front-facing is made by examining the sign of the area of the triangle, including a possible reversal of this sign as controlled by glFrontFace. One way to compute this area is:
a=12 ∑ j=0 n-1 x w i y w i+1 - x w i+1 y w i
where x w i and y w i are the x and y window coordinates of the ith vertex of the n-vertex polygon.
The sign of this computation is negated when the value of GL_CLIP_ORIGIN (the clip volume origin, set with glClipControl()) is GL_UPPER_LEFT.
|OpenGL Shading Language Version|