From aa605d17e8f15127d203122cea21e3d7c151494c Mon Sep 17 00:00:00 2001 From: curt Date: Tue, 2 Dec 1997 13:13:32 +0000 Subject: [PATCH] Fixed problem with averaged vertex normals. --- Tri2obj/Makefile | 5 ++++- Tri2obj/tri2obj.c | 20 +++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Tri2obj/Makefile b/Tri2obj/Makefile index 9e4025bf1..87ddbbd49 100644 --- a/Tri2obj/Makefile +++ b/Tri2obj/Makefile @@ -33,7 +33,7 @@ OFILES = $(CFILES:.c=.o) 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$ +# 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 # 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 diff --git a/Tri2obj/tri2obj.c b/Tri2obj/tri2obj.c index cc529dd1d..ef1007e67 100644 --- a/Tri2obj/tri2obj.c +++ b/Tri2obj/tri2obj.c @@ -171,7 +171,7 @@ void triload(char *basename) { /* dump in WaveFront .obj format */ void dump_obj(char *basename) { char objname[256]; - double n1[3], n2[3], n3[3]; + double n1[3], n2[3], n3[3], norm[3], temp; FILE *obj; int i, t1, t2, t3, count; @@ -214,10 +214,13 @@ void dump_obj(char *basename) { count = 3; } - fprintf(obj, "vn %.4f %.4f %.4f\n", - ( n1[0] + n2[0] + n3[0] ) / (double)count, - ( n1[1] + n2[1] + n3[1] ) / (double)count, - ( n1[2] + n2[2] + n3[2] ) / (double)count ); + norm[0] = ( n1[0] + n2[0] + n3[0] ) / (double)count; + norm[1] = ( n1[1] + n2[1] + n3[1] ) / (double)count; + norm[2] = ( 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 */ @@ -248,9 +251,12 @@ int main(int argc, char **argv) { /* $Log$ -/* Revision 1.3 1997/11/15 18:05:05 curt -/* minor tweaks ... +/* Revision 1.4 1997/12/02 13:13:32 curt +/* 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 * 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 -- 2.39.2