LYGIA Shader Library

reflect (lygia/v1.1.6/math/reflect)

Dependencies:

Check it on Github


////////////////////////////////////////////////////////////////////////////////
// reflect
// - returns reflection of incident ray I around surface normal N
// - N should be normalized, reflected vector's length is equal to length of I
////////////////////////////////////////////////////////////////////////////////

#ifndef FNC_REFLECT
#define FNC_REFLECT

inline __host__ __device__ float3 reflect(const float3& i, const float3& n) { return i - 2.0f * n * dot(n, i); }

#endif

LYGIA is dual-licensed under the Prosperity License and the Patron License for sponsors and contributors.

Sponsors and contributors are automatically added to the Patron License and they can ignore the any non-commercial rule of the Prosperity Licensed software (please take a look to the exception).

It's also possible to get a permanent comercial license hook to a single and specific version of LYGIA.

Get the latest news and releases

Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository