refract — calculate the refraction direction for an incident vector
genType refract(
|
genType I, |
| genType N, | |
float eta); |
I
Specifies the incident vector.
N
Specifies the normal vector.
eta
Specifies the ratio of indices of refraction.
For a given incident vector I, surface normal N and ratio of
indices of refraction, eta, refract returns the refraction vector,
R.
R is calculated as:
k = 1.0 - eta * eta * (1.0 - dot(N, I) * dot(N, I));
if (k < 0.0)
R = genType(0.0); // or genDType(0.0)
else
R = eta * I - (eta * dot(N, I) + sqrt(k)) * N;
The input parameters I and N should be normalized in order to achieve the desired result.
| OpenGL ES Shading Language Version | ||||
|---|---|---|---|---|
| Function Name | 1.00 | 3.00 | 3.10 | 3.20 |
| refract (genType) | ✔ | ✔ | ✔ | ✔ |
Copyright © 2011-2015 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.