libzoom: Compute default normals

This commit is contained in:
neoraider 2007-05-14 19:11:02 +00:00
parent a5aa4b54e2
commit a4339f0570

10
level.c
View file

@ -270,11 +270,19 @@ LEVEL *LoadLevel(char *filename) {
}
}
}
v = VectorCross(
VectorSub(level->rooms[i].walls[j].vertices[1], level->rooms[i].walls[j].vertices[0]),
VectorSub(level->rooms[i].walls[j].vertices[2], level->rooms[i].walls[j].vertices[0])
);
if(VectorLengthSq(v)) level->rooms[i].walls[j].normal = VectorNormalize(v);
if(VectorLengthSq(v) > 0.0) {
level->rooms[i].walls[j].normal = VectorNormalize(v);
for(k = 0; k < 3; k++) {
if(VectorLengthSq(level->rooms[i].walls[j].normals[k]) == 0.0)
level->rooms[i].walls[j].normals[k] = level->rooms[i].walls[j].normal;
}
}
j++;
}