1
0
Fork 0

Fixed problem with averaged vertex normals.

This commit is contained in:
curt 1997-12-02 13:13:32 +00:00
parent 35c3de4cc2
commit aa605d17e8
2 changed files with 17 additions and 8 deletions

View file

@ -33,7 +33,7 @@ OFILES = $(CFILES:.c=.o)
include ../make.inc include ../make.inc
CFLAGS = $(FG_CFLAGS) -g CFLAGS = $(FG_CFLAGS) -O3 -fomit-frame-pointer -funroll-all-loops -ffast-math
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@ -66,6 +66,9 @@ tri2obj.o: tri2obj.c
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# $Log$ # $Log$
# Revision 1.3 1997/12/02 13:13:32 curt
# Fixed problem with averaged vertex normals.
#
# Revision 1.2 1997/11/14 00:29:13 curt # Revision 1.2 1997/11/14 00:29:13 curt
# Transform scenery coordinates at this point in pipeline when scenery is # Transform scenery coordinates at this point in pipeline when scenery is
# being translated to .obj format, not when it is being loaded into the end # being translated to .obj format, not when it is being loaded into the end

View file

@ -171,7 +171,7 @@ void triload(char *basename) {
/* dump in WaveFront .obj format */ /* dump in WaveFront .obj format */
void dump_obj(char *basename) { void dump_obj(char *basename) {
char objname[256]; char objname[256];
double n1[3], n2[3], n3[3]; double n1[3], n2[3], n3[3], norm[3], temp;
FILE *obj; FILE *obj;
int i, t1, t2, t3, count; int i, t1, t2, t3, count;
@ -214,10 +214,13 @@ void dump_obj(char *basename) {
count = 3; count = 3;
} }
fprintf(obj, "vn %.4f %.4f %.4f\n", norm[0] = ( n1[0] + n2[0] + n3[0] ) / (double)count;
( n1[0] + n2[0] + n3[0] ) / (double)count, norm[1] = ( n1[1] + n2[1] + n3[1] ) / (double)count;
( n1[1] + n2[1] + n3[1] ) / (double)count, norm[2] = ( n1[2] + n2[2] + n3[2] ) / (double)count;
( n1[2] + n2[2] + n3[2] ) / (double)count );
MAT3_NORMALIZE_VEC(norm, temp);
fprintf(obj, "vn %.4f %.4f %.4f\n", norm[0], norm[1], norm[2]);
} }
/* dump faces */ /* dump faces */
@ -248,9 +251,12 @@ int main(int argc, char **argv) {
/* $Log$ /* $Log$
/* Revision 1.3 1997/11/15 18:05:05 curt /* Revision 1.4 1997/12/02 13:13:32 curt
/* minor tweaks ... /* Fixed problem with averaged vertex normals.
/* /*
* Revision 1.3 1997/11/15 18:05:05 curt
* minor tweaks ...
*
* Revision 1.2 1997/11/14 00:29:13 curt * Revision 1.2 1997/11/14 00:29:13 curt
* Transform scenery coordinates at this point in pipeline when scenery is * Transform scenery coordinates at this point in pipeline when scenery is
* being translated to .obj format, not when it is being loaded into the end * being translated to .obj format, not when it is being loaded into the end