VTK Learning Twenty-nine- surface normal
Description
vtkPolyDataNormals
计算多边形网格( polygonal mesh
)的法向量。
同时能够重新排序多边形顶点的顺序以确保邻接多边形方向一致。能够整体翻转曲面的法向量,使得曲面的法向量方向一致。
- 三维平面的法向量是指垂直于该平面的三维向量。
- 曲面在某点P处的法向量为垂直于该点切平面的向量。
- 对于一个网格模型,每个点和单元cell都可以计算一个法向量,在三维计算机图形学中法向量一个重要的应用是光照和阴影计算。
- 在计算网格模型法向量时,单元cell法向量计算比较简单,可以通过组成每个单元cell的任意两条边的叉乘向量并归一化来表示。
- 对于点的法向量,则是由所有使用该点的单元法向量的平均值来表示。
Code
vtkNew<vtkPolyDataNormals> normfilter;
normfilter->SetInputData(data);
//是否计算点的法向量
normfilter->SetComputePointNormals(1);
//是否计算面的法向量
normfilter->SetComputeCellNormals(0);
//是否自动翻转法向量以保持一致性
normfilter->SetAutoOrientNormals(1);
//是否分离锐边的法向量
normfilter->SetSplitting(0);
normfilter->Update();