|
//check it, but also return distance and barycentric coords (for uv lookup)
|
|
//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) {
|
|
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) {
|
|
vec3 triangle_normal = cross(e1, e0);
|
|
vec3 triangle_normal = cross(e1, e0);
|
|
float n_dot_dir = dot(triangle_normal, dir);
|
|
float n_dot_dir = dot(triangle_normal, dir);
|