我正在尝试使用行进立方体算法使用 Gouraud 着色来渲染 3D 模型(来自 volvis.org)。到目前为止,我有每个顶点的法线:
GetNormalForVertex(vertex &b, vertex &a, vertex &c) {
u.X = a.X - b.X;
u.Y = a.Y - b.Y;
u.Z = a.Z - b.Z;
v.X = c.X - b.X;
v.Y = c.Y - b.Y;
v.Z = c.Z - b.Z;
return Cross(u,v);
}
渲染时我可以看到一个漂亮的平面阴影。现在,据我所知,我需要对这些顶点法线进行插值以在交点处找到法线以获得 Gouraud 着色。我怎样才能插入顶点法线?