logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

refract - calculate the refraction direction for an incident vector

Declaration

genTyperefract(genTypeI,genTypeN,floateta);genDTyperefract(genDTypeI,genDTypeN,floateta);

Description

       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.

Name

       refract - calculate the refraction direction for an incident vector

Parameters

I
           Specifies the incident vector.

       N
           Specifies the normal vector.

       eta
           Specifies the ratio of indices of refraction.

See Also

dot(), reflect()

Version Support

       ┌────────────┬───────────────────────────────────────────────────────────────────────────────────┐
       │            │        OpenGLShadingLanguageVersion                                            │
       ├────────────┼──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┤
       │ Function1.101.201.301.401.503.304.004.104.204.304.404.50 │
       │ Name       │      │      │      │      │      │      │      │      │      │      │      │      │
       ├────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │ refract    │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │ (genType)  │      │      │      │      │      │      │      │      │      │      │      │      │
       ├────────────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
       │ refract    │  -   │  -   │  -   │  -   │  -   │  -   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │  ✔   │
       │ (genDType) │      │      │      │      │      │      │      │      │      │      │      │      │
       └────────────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

See Also