したがって、GL_TRIANGLE_FAN を使用して 3 辺のピラミッドを描画する場合は、中央に 1 つの頂点、下部に 3 つの頂点を指定します (実際には 4 つですが、意味がわかりますよね?!)。
ピラミッドの 3 つの面 (側面) すべての面法線を計算できます。
質問は、その頂点を描画する呼び出しが 1 つしかない場合、すべての面 (側面) の最初の (中心) 頂点に異なる法線を割り当てるにはどうすればよいですか?
基本的に、三角形を構成する 3 つの頂点すべてに同じ面法線を割り当て、次の 2 つの三角形に同じことを割り当てる必要があります。
しかし、頂点描画関数を 1 回だけ呼び出したときに、最初の (中心) 頂点に法線を 3 回割り当てる方法がわかりません (GL_TRIANGLE_FAN でも可能ですか?!)。
その頂点法線を glNormal3f(0.0f, 0.0f, 1.0f) に設定するのは良くありません (正しいように見えますが)。頂点間の色補間が正しくないからです。