二维曲线法向量的求解示例:
Here's an example using an analytic curve of y = x^2
-
x =
0:
0.1:
1;
-
y = x.*x;
-
dy = gradient(y);
-
dx = gradient(x);
-
quiver(x,y,-dy,dx)
-
hold
on; plot( x, y)
which gives:
三维三角面片顶点法向量的求解:顶点相邻各个三角面片单位法向量的叠加。
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:
-
-
v = normalised(sum(v12, v23, v34, v41))
-
-
where
-
-
vij = normalised(vi x vj)
// normalised cross product