マーチングキューブアルゴリズムを使用して、グーローシェーディングを使用して(volvis.orgの)3Dモデルをレンダリングしようとしています。これまでのところ、各頂点の法線は次のようになっています。
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);
}
レンダリングすると、フラットなシェーディングが見られます。さて、私が知る限り、これらの頂点法線を補間して、グーローシェーディングを取得するために交点で法線を見つける必要があります。頂点法線をどのように補間できますか?