Sophie

Sophie

distrib > Mandriva > cooker > i586 > by-pkgid > b70c0f154c89d61ccc233b855bfed06f > files > 901

cg-3.0.0018-0.1.i586.rpm

<HTML>

<HEAD>
<TITLE>faceforward</TITLE>
<STYLE TYPE="text/css" MEDIA=screen>
<!--
		
BODY {
 font-family: Arial,Helvetica;
}

BLOCKQUOTE { margin: 10pt;  }

H1,A { color: #336699; }


/*** Top menu style ****/
.mmenuon { 
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #ff6600; font-size: 10pt;
 }
.mmenuoff { 
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #ffffff; font-size: 10pt;
}	  
.cpyright {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #ffffff; font-size: xx-small;
}
.cpyrightText {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #ffffff; font-size: xx-small;
}
.sections { 
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: 11pt;
}	 
.dsections { 
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: 12pt;
}	
.slink { 
 font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
 color: #336699; font-size: 9pt;
}	 

.slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; }	 

.maintitle { 
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: 18pt;
}	 
.dblArrow {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: small;
}
.menuSec {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: small;
}

.newstext {
 font-family: Arial,Helvetica; font-size: small;
}

.linkmenu {
 font-family: Arial,Helvetica; color: #000000; font-weight: bold;
 text-decoration: none;
}

P {
 font-family: Arial,Helvetica;
}

PRE            { 
																font-family: monospace;
																white-space: pre; 
																font-color: #333333; 
																font-weight: 100;
																background-color: #eeeeee; 
																padding: 5px; 
																width: 90%; 
																border-style: solid;
																border-width: 2px; 
																border-color: #bebebe; 
	              }
.quote { 
 font-family: Times; text-decoration: none;
 color: #000000; font-size: 9pt; font-style: italic;
}	
.smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } 
.std { font-family: Arial,Helvetica; color: #000000; } 
.meerkatTitle { 
 font-family: sans-serif; font-size: x-small;  color: black;    }

.meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black }
.meerkatCategory { 
 font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; 
 color: brown; }
.meerkatChannel { 
 font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; }
.meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; }

.tocTitle {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #333333; font-size: 10pt;
}

.toc-item {
 font-family: Arial,Helvetica; font-weight: bold; 
 color: #336699; font-size: 10pt; text-decoration: underline;
}

.perlVersion {
 font-family: Arial,Helvetica; font-weight: bold; 
 color: #336699; font-size: 10pt; text-decoration: none;
}

.docTitle {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #000000; font-size: 10pt;
}
.dotDot {
 font-family: Arial,Helvetica; font-weight: bold; 
 color: #000000; font-size: 9pt;
}

.docSec {
 font-family: Arial,Helvetica; font-weight: normal; 
 color: #333333; font-size: 9pt;
}
.docVersion {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: 10pt;
}

.docSecs-on {
 font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
 color: #ff0000; font-size: 10pt;
}
.docSecs-off {
 font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
 color: #333333; font-size: 10pt;
}

h3 {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: small;
}
h2 {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: medium;
}
h1 {
 font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: large;
}

DL {
 font-family: Arial,Helvetica; font-weight: normal; text-decoration: none;
 color: #333333; font-size: 10pt;
}

UL > LI > A {
 font-family: Arial,Helvetica; font-weight: bold;
 color: #336699; font-size: 10pt;
}

.moduleInfo {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #333333; font-size: 11pt;
}

.moduleInfoSec {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none;
 color: #336699; font-size: 10pt;
}

.moduleInfoVal {
 font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline;
 color: #000000; font-size: 10pt;
}

.cpanNavTitle {
 font-family: Arial,Helvetica; font-weight: bold; 
 color: #ffffff; font-size: 10pt;
}
.cpanNavLetter {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; 
 color: #333333; font-size: 9pt;
}
.cpanCat {
 font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; 
 color: #336699; font-size: 9pt;
}


-->
</STYLE>

</HEAD>

<BODY>


<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
</object>




<BLOCKQUOTE>

<H1><A NAME="NAME"><A NAME="1">NAME

</A></A></H1>
<P>
<B>faceforward</B> - returns a normal as-is if a vertex's eye-space position
vector points in the opposite direction of a geometric normal, otherwise
return the negated version of the normal


</P>

<H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS

</A></A></H1>
<PRE>  float  faceforward(float  N, float  I, float  Ng);
  float1 faceforward(float1 N, float1 I, float1 Ng);
  float2 faceforward(float2 N, float2 I, float2 Ng);
  float3 faceforward(float3 N, float3 I, float3 Ng);
  float4 faceforward(float4 N, float4 I, float4 Ng);

  half  faceforward(half  N, half  I, half  Ng);
  half1 faceforward(half1 N, half1 I, half1 Ng);
  half2 faceforward(half2 N, half2 I, half2 Ng);
  half3 faceforward(half3 N, half3 I, half3 Ng);
  half4 faceforward(half4 N, half4 I, half4 Ng);

  fixed  faceforward(fixed  N, fixed  I, fixed  Ng);
  fixed1 faceforward(fixed1 N, fixed1 I, fixed1 Ng);
  fixed2 faceforward(fixed2 N, fixed2 I, fixed2 Ng);
  fixed3 faceforward(fixed3 N, fixed3 I, fixed3 Ng);
  fixed4 faceforward(fixed4 N, fixed4 I, fixed4 Ng);
</PRE>
<H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS

</A></A></H1>
<DL>
<DT><STRONG>N

</STRONG></DT>
<DD>

<P>
Peturbed normal vector.


</P>
<DT><STRONG>I

</STRONG></DT>
<DD>

<P>
Incidence vector (typically a direction vector from the eye to a vertex).


</P>
<DT><STRONG>Ng

</STRONG></DT>
<DD>

<P>
Geometric normal vector (for some facet the peturbed normal belongs).


</P>
</DD></DL>

<H1><A NAME="DESCRIPTION"><A NAME="4">DESCRIPTION

</A></A></H1>
<P>
Returns a (peturbed) normal as-is if a vertex's eye-space position
vector points in the opposite direction of a geometric normal, otherwise
return the negated version of the (peturbed) normal


</P>
<P>
Mathematically, if the dot product of <I>I</I> and <I>Ng</I> is negative, <I>N</I>
is returned unchanged; otherwise -<I>N</I> is returned.


</P>
<P>
This function is inspired by a RenderMan funciton of the same name though
the RenderMan version has only two parameters.


</P>

<H1><A NAME="REFERENCE_IMPLEMENTATION"><A NAME="5">REFERENCE IMPLEMENTATION

</A></A></H1>
<P>
<B>faceforward</B> for <B>float3</B> vectors could be implemented this way:


</P>
<PRE>  float3 faceforward( float3 N, float3 I, float Ng )
  {
    return dot(I, Ng) &lt; 0 ? N : -N;
  }
</PRE>
<H1><A NAME="PROFILE_SUPPORT"><A NAME="6">PROFILE SUPPORT

</A></A></H1>
<P>
<B>refract</B> is supported in all profiles.


</P>

<H1><A NAME="SEE_ALSO"><A NAME="7">SEE ALSO

</A></A></H1>
<P>
<A HREF="dot.html"><I>dot</I></A>, <A HREF="reflect.html"><I>reflect</I></A>, <A HREF="refract.html"><I>refract</I></A>, <A HREF="normalize.html"><I>normalize</I></A>

</P>

</BLOCKQUOTE>



</BODY>