mirror of
https://github.com/recp/cglm.git
synced 2026-01-05 22:59:12 +00:00
change signature of refraction to let caller know if refraction occurs or not
This commit is contained in:
@@ -535,15 +535,20 @@ Functions documentation
|
||||
| *[in]* **N** *❗️ normalized ❗️* normal vector
|
||||
| *[out]* **dest** destination: reflection result
|
||||
|
||||
.. c:function:: void glm_vec3_refract(vec3 I, vec3 N, float eta, vec3 dest)
|
||||
.. c:function:: bool glm_vec3_refract(vec3 I, vec3 N, float eta, vec3 dest)
|
||||
|
||||
Refraction vector using entering ray, surface normal and refraction index
|
||||
|
||||
If the angle between the entering ray I and the surface normal N is too
|
||||
great for a given refraction index, the return value is zero
|
||||
|
||||
Computes refraction vector for an incident vector and a surface normal.
|
||||
|
||||
Calculates the refraction vector based on Snell's law. If total internal reflection
|
||||
occurs (angle too great given eta), dest is set to zero and returns false.
|
||||
Otherwise, computes refraction vector, stores it in dest, and returns true.
|
||||
|
||||
Parameters:
|
||||
| *[in]* **I** *❗️ normalized ❗️* incident vector
|
||||
| *[in]* **N** *❗️ normalized ❗️* normal vector
|
||||
| *[in]* **eta** ratio of indices of refraction ( η )
|
||||
| *[out]* **dest** destination: refraction result
|
||||
| *[in]* **eta** ratio of indices of refraction (incident/transmitted)
|
||||
| *[out]* **dest** refraction vector if refraction occurs; zero vector otherwise
|
||||
|
||||
Returns:
|
||||
returns true if refraction occurs; false if total internal reflection occurs.
|
||||
Reference in New Issue
Block a user