~ | Vertex normal obj handling

This commit is contained in:
TheRedShip
2025-02-24 20:19:06 +01:00
parent d3229df002
commit 16c90128bf
11 changed files with 108 additions and 50 deletions

View File

@ -157,8 +157,9 @@ hitInfo traverseBVHs(Ray ray)
vec3 position = transformedRay.origin + transformedRay.direction * temp_hit.t;
hit.position = inverseTransformMatrix * position + bvh_data.offset;
vec3 based_normal = triangle.normal * sign(-dot(transformedRay.direction, triangle.normal));
hit.normal = normalize(inverseTransformMatrix * based_normal);
vec3 normal = normalize(triangle.normal_vertex1 * (1.0 - hit.u - hit.v) + triangle.normal_vertex2 * hit.u + triangle.normal_vertex3 * hit.v);
vec3 directed_normal = normal * sign(-dot(transformedRay.direction, normal));
hit.normal = normalize(inverseTransformMatrix * directed_normal);
}
}