我正在尝试使用行进立方体算法渲染带有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);
}
Run Code Online (Sandbox Code Playgroud)
渲染时我可以看到一个漂亮的平面阴影.现在,据我所知,我需要插入这些顶点法线以在交叉点找到法线以获得Gouraud阴影.我怎么能插入顶点法线?