how to calculate normal for each vertex?

what formula can i use to calculate normal for vertex??
i use this parametric formula for my object:
x=1.6f*(cos(0.5angle1)cos(0.5angle1)cos(0.5angle1));
y=1.6f
(cos(angle2)sin(0.5angle1)*cos(angle2)sin(0.5angle1)cos(angle2)sin(0.5angle1));
z=1.6f
sin(angle2)sin(0.5angle1);

can anyone pls give me example how to use parametric function in opengl??i put it under double loop and i failed to get good shape. i just started studying com graphics this week.

[This message has been edited by caesar5 (edited 03-01-2004).]

[This message has been edited by caesar5 (edited 03-01-2004).]

Iterate through all triangles of your mesh. For each vertex of each triangle, take the cross product of the two edges the vertex is part of and store it associated to the vertex (you’ll get several normals for each vertex, because every vertex can be part of several faces). Add all normals for each vertex. Normalize. Voila

You can use auto-normals and evaluators to render your geometry.

OR you can take cross-products of the partial derivatives to find the normal.

By the way, could U show me how to render the parametric object in OpenGL in step-by-step instructions as i’m a newbie for this one

Just take the vertex normal from your favourite 3D program ( 3dsmax, maya, lw… ) in your exporter

Take a look at the NeHe Tutorials , they will be invaluable if you’re learning to code in OpenGL. (Or spend some $$ on a book like I did)

C’mon guys, he’s got an analytic formula here!

Caesar, you should take advantage of this fact and use the gradient operator to find your normals (ask if you need more info on this). You don’t need to pre-tesselate or use any adjacency information then, and the normals will probably end up being smoother.

Don’t forget to normalize the result :slight_smile: