Hi,

My program loads a dxf file and save each FACE3D in an aray in the following order x,y,z,x,y,z,x… These render perfectly but I’m wonder how do I generate normals or texture objects drawn in this fashion.

Thanks

I don’t know about texture objects, but calculating a normal from a triangle can be done using the cross product. This is the code that I use:

// Calculate two vectors for the x-product,

// where tri_verts is an array holding your

// triangle vertices:

v1 = tri_verts[ 0 ] - tri_verts[ 1 ];

v2 = tri_verts[ 2 ] - tri_verts[ 1 ];

// Use the cross product of the two vectors

// to compute the face normal:

normal.x = v1.y * v2.z - v1.z * v2.y;

normal.y = v1.z * v2.x - v1.x * v2.z;

normal.z = v1.x * v2.y - v1.y * v2.x;

// OpenGL expects normals to be normalized:

normal.Normalize();

This is a normal for a single face and is only useful if you are using flat shading. If you want smooth objects you’ll have to average the normals at each vertex.

Hope this helps.