normal vector and triangle strip

Started by
2 comments, last by BornToCode 12 years, 1 month ago
hi everybody,

i generate a map with this tuto http://www.chadvernon.com/blog/resources/directx9/terrain-generation-with-a-heightmap/ and i generate the map with triangle strip but i want to calculate the normals on vertices but how calculate those normals?

Thx!
Advertisement
N = normalize( cross( v1 - v2, v3 - v2 ) );

Its a flat normal.

good luck
Hello arkerone

Mainly the 3 steps are :

1) computation of per face normals (with the formula suggested by Vlad86)
2) computation of the adjacency data (so we know then : which vertex belongs to which faces(s) )
3) combination of per face normals accordingly to adjacency data to compute the wanted per vertex normals.

But there's not an unique technique to do the 3)
For instance, you can average the 1) normals, either directly, or taking into account the area of the triangles the vertices belong to.

Maybe you can take a look at this post?

Nico

EDIT : The best results I got were when taking into account triangle areas : a little example with this technique
[attachment=7512:exemplepournormales.PNG]
If your Triangles are defined in CW direction do what Vlad says otherwise just compute the cross product by doing N = normalize( cross(v3 - v2, v1 - v2, ) );

This topic is closed to new replies.

Advertisement