Gourad texturing

Blitz3D Forums/Blitz3D Programming/Gourad texturing

Ok, I figured out that the problem was that I didn't have any normals applied to my meshes.

I tried using UpdateNormals (and that created the shading effect I wanted), BUT that averages the normals between faces. This IS an effect that I want applied to parts of my mesh but not the entire mesh. On other parts of the mesh, I want very defined edges. (It's a mesh of a gear. I want the gear teeth to be shaded so that they look smooth but I want the sides of the gears to be shaded so that they look flat.)

I found the VertexNormal command in the command set. However, it seems to be able to only set one normal per vertex. Since the sides of my gears share the same vertices with the teeth of the gears, I need two seperate normals to define the side as flat and the teeth as smooth.

Is there a way to create two (or more) normals per vertex (basically a normal for each face that shares the vertex)?

Or

Must I create seperate vertices (that are in the exact same positions as the other vertices) so that I can seperately set normals for those vertices?

Or

Must I create an entirely different surface with different vertices? (I've heard you should try to keep surfaces to a minimum though).