libzoom: Compute default normals
This commit is contained in:
parent
a5aa4b54e2
commit
a4339f0570
1 changed files with 9 additions and 1 deletions
10
level.c
10
level.c
|
@ -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++;
|
||||
}
|
||||
|
|
Reference in a new issue