求解二維和三維法向量的方法

二維曲線法向量的求解示例:

Here's an example using an analytic curve of y = x^2

  1. x = 0:0.1:1;
  2. y = x.*x;
  3. dy = gradient(y);
  4. dx = gradient(x);
  5. quiver(x,y,-dy,dx)
  6. hold on; plot( x, y)

which gives:

Quiver

三維三角面片頂點法向量的求解:頂點相鄰各個三角面片單位法向量的疊加。

http://www.lighthouse3d.com/opengl/terrain/index.php3?normals

The normal at a vertex should be computed as the normalised sum of all the unit length normals for each face the vertex shares. Consider the following image:

In the above image, v represents the normal at the center vertex. Each vij represents a normal for each face that shares the center vertex. So for instance v12 is the unit lenght normal for the bottom right face.

The vertex normal v is computed as the normalised sum of all vij vectors:


    
  1. v = normalised(sum(v12, v23, v34, v41))
  2. where
  3. vij = normalised(vi x vj) // normalised cross product

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章