Add Normal in vertex. And add light in shader.

This commit is contained in:
Troispoils 2024-02-28 17:07:45 +01:00
parent 8908ef1332
commit 0e96615b32
16 changed files with 221 additions and 85 deletions

View file

@ -24,5 +24,22 @@ namespace LandblockExtraction.Tools {
public static Vector4 RGBAColorToVector4(RGBAColor color) {
return new Vector4(color.r, color.g, color.b, color.a);
}
// Calcule la normale d'un triangle à partir de trois points
public static Vector3 CalculateTriangleNormal(Vector3 A, Vector3 B, Vector3 C) {
Vector3 AB = B - A;
Vector3 AC = C - A;
Vector3 normal = Vector3.Cross(AB, AC);
normal = Vector3.Normalize(normal);
return normal;
}
// Calcule la normale moyenne d'un quadrilatère en utilisant deux de ses triangles
public static Vector3 CalculateQuadNormal(Vector3 A, Vector3 B, Vector3 C, Vector3 D) {
Vector3 normal1 = CalculateTriangleNormal(A, B, C);
Vector3 normal2 = CalculateTriangleNormal(C, B, D);
Vector3 averageNormal = (normal1 + normal2) / 2;
return Vector3.Normalize(averageNormal);
}
}
}