Rechercher une page de manuel
refract.3Cg
Langue: en
Version: 361644 (ubuntu - 24/10/10)
Section: 3 (Bibliothèques de fonctions)
NAME
refract - computes a refraction vector.SYNOPSIS
fixed3 refract(fixed3 i, fixed3 n, fixed eta); half3 refract(half3 i, half3 n, half eta); float3 refract(float3 i, float3 n, float eta);
PARAMETERS
- i
- Incidence vector.
- n
- Normal vector.
- eta
- Ratio of indices of refraction at the surface interface.
DESCRIPTION
Returns a refraction vector given an incidence vector, a normal vector for a surface, and a ratio of indices of refraction at the surface's interface.The incidence vector i and normal vector n should be normalized.
REFERENCE IMPLEMENTATION
reflect for float3 vectors could be implemented this way:float3 refract( float3 i, float3 n, float eta ) { float cosi = dot(-i, n); float cost2 = 1.0f - eta * eta * (1.0f - cosi*cosi); float3 t = eta*i + ((eta*cosi - sqrt(abs(cost2))) * n); return t * (float3)(cost2 > 0); }
PROFILE SUPPORT
refract is supported in all profiles.Support in the fp20 is limited.
SEE ALSO
abs, cos, dot, reflect, sqrtContenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre