diff --git a/LandblockExtraction/LandBlockExtractor/LandBlockExtrator.cs b/LandblockExtraction/LandBlockExtractor/LandBlockExtrator.cs index d04368e..cf65fac 100644 --- a/LandblockExtraction/LandBlockExtractor/LandBlockExtrator.cs +++ b/LandblockExtraction/LandBlockExtractor/LandBlockExtrator.cs @@ -64,8 +64,8 @@ namespace LandblockExtraction.LandBlockExtractor { } private Vector2 GenerateBasicUV(int x, int y) { - float u = (float)x / (BlockSize - 1) * 16; - float v = (float)y / (BlockSize - 1) * 16; + float u = (float)x / (BlockSize - 1) * 8; + float v = (float)y / (BlockSize - 1) * 8; return new Vector2(u, v); } @@ -79,25 +79,28 @@ namespace LandblockExtraction.LandBlockExtractor { } // Parcourt tous les indices et calcule les normales pour chaque triangle - for (int i = 0; i < blockStruct.indices.Length; i += 3) { + for (int i = 0; i < blockStruct.indices.Length; i += 6) { int index1 = blockStruct.indices[i]; int index2 = blockStruct.indices[i + 1]; int index3 = blockStruct.indices[i + 2]; + int index4 = blockStruct.indices[i + 5]; Vector3 vertex1 = blockStruct.verticesStruct.position[index1]; Vector3 vertex2 = blockStruct.verticesStruct.position[index2]; Vector3 vertex3 = blockStruct.verticesStruct.position[index3]; + Vector3 vertex4 = blockStruct.verticesStruct.position[index4]; // Calcule la normale du triangle /*Vector3 edge1 = vertex2 - vertex1; Vector3 edge2 = vertex3 - vertex1; Vector3 normal = Vector3.Cross(edge1, edge2); normal = Vector3.Normalize(normal);*/ - var normal = MathOperations.CalculateTriangleNormal(vertex1, vertex2, vertex3); + var normal = MathOperations.CalculateQuadNormal(vertex1, vertex2, vertex3, vertex4); // Ajoute la normale du triangle aux normales des sommets du triangle normals[index1] += normal; normals[index2] += normal; normals[index3] += normal; + normals[index4] += normal; } // Normalise toutes les normales de sommets pour qu'elles soient de longueur unitaire diff --git a/Map3DRendering/Shaders/shader.frag b/Map3DRendering/Shaders/shader.frag index b2e8c63..8de05a0 100644 --- a/Map3DRendering/Shaders/shader.frag +++ b/Map3DRendering/Shaders/shader.frag @@ -26,7 +26,7 @@ void main() float inclineFactor = abs(norm.y); - vec4 finalColor = mix(color0, color1, inclineFactor); + vec4 finalColor = mix(color0, color1, norm.y); vec3 lightDir = normalize(lightPos - FragPos); float diff = max(dot(norm, lightDir), 0.0);