Hola a todos, tengo un codigo que genera varios meshes pero me ha surgido un problema y es que algunas caras miran en la direccion incorrecta y por tanto solo se ven si te situas dentro del mesh.
Creia que el problema estaba en las normales pero tras arreglarlas sigue ocurriendo, tambien he leido que puede ser por el orden en el que se definen los vertices de los triangulos pero tras varios intentos me siguen dando problemas.
Les dejo algunas imagenes y el codigo.
(Rosa = normals; Verde = edges (solo estan representados los que estan a la altura del suelo); Negro = vertices)
Calculo de vertices y normales
//Generates the vertices and the normals
var vertices = new Vector3[sector.Count * 2];
var normals = new Vector3[vertices.Length];
for (int i = ; i < sector.Count; i += 2)
{
//Calculates the vertices of a whole face
vertices[i * 2] = new Vector3(sector[i].x, , sector[i].y);
vertices[i * 2 + 1] = new Vector3(sector[i + 1].x, , sector[i + 1].y);
vertices[i * 2 + 2] = new Vector3(sector[i].x, 10, sector[i].y);
vertices[i * 2 + 3] = new Vector3(sector[i + 1].x, 10, sector[i + 1].y);
//Takes calculated vertices to make an edge of the mesh's face
var a = vertices[i * 2];
var b = vertices[i * 2 + 1];
var ab = b - a;
//Calculate the two possible normals for the face
var n1 = new Vector3(-ab.z, ab.y, ab.x);