diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-10-15 16:31:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-15 16:31:55 +0200 |
commit | d15512c17f0f969e3f73e3cec4b74819b37fb7ae (patch) | |
tree | 4ccd0dc95ef4dba05f9b83a2dcc45a45b413f7b3 | |
parent | 5a276443bdf526620d0c9eafd60658eb4f822d9b (diff) | |
parent | a3f315c81bc782ef75ee2cecfc47d136db6d4a54 (diff) |
Merge pull request #53844 from williamd67/GPULightmapper-increase-ray-triangle-hit-rate
-rw-r--r-- | modules/lightmapper_rd/lm_compute.glsl | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/lightmapper_rd/lm_compute.glsl b/modules/lightmapper_rd/lm_compute.glsl index 6e5c9f25ba..158cd960c4 100644 --- a/modules/lightmapper_rd/lm_compute.glsl +++ b/modules/lightmapper_rd/lm_compute.glsl @@ -94,13 +94,14 @@ params; //check it, but also return distance and barycentric coords (for uv lookup) bool ray_hits_triangle(vec3 from, vec3 dir, float max_dist, vec3 p0, vec3 p1, vec3 p2, out float r_distance, out vec3 r_barycentric) { + const float EPSILON = 0.00001; const vec3 e0 = p1 - p0; const vec3 e1 = p0 - p2; vec3 triangle_normal = cross(e1, e0); float n_dot_dir = dot(triangle_normal, dir); - if (abs(n_dot_dir) < 0.01) { + if (abs(n_dot_dir) < EPSILON) { return false; } |