////////////////////////////////////////////////////////////////////////////
// Compute the reflection vector given a view vector and normal.
////////////////////////////////////////////////////////////////////////////
float3 SiReflect (float3 viewVec, float3 normal)
{
return normalize (2*dot (viewVec, normal)*normal - viewVec);
}
////////////////////////////////////////////////////////////////////////////
// Compute the reflection vector given a view vector, normal, and
// view dot normal
////////////////////////////////////////////////////////////////////////////
float3 SiReflect (float3 viewVec, float3 normal, float nDotV)
{
return normalize ((2 * nDotV * normal) - viewVec);
}