4

私はグーグルで何時間も検索しましたが、答えはよく説明されていません。私は照明を扱っており、頂点法線が必要です。この頂点バッファがあるとしましょう(立方体です):

static const GLfloat g_vertex_buffer_data[] = {
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f
};

では、頂点法線を計算するにはどうすればよいでしょうか。それで全部です。ありがとう

4

2 に答える 2

8

それ自体を計算することは問題ではなく、法線はオブジェクトのアートワークの一部です。各角を立方体の「外側」に垂直に向けると、ふくらんで丸みを帯びた外観になります。定義された立方体。

多くの三角形を含むより複雑な (滑らかな) サーフェスがある場合は、三角形の辺の外積の値を平均することで法線を計算できます。これにより、最も滑らかな外観が得られます。その場合、あなたはまだ芸術的な判断を下しています。すべてのオブジェクトに 1 つの答えはありません。

于 2013-03-01T01:47:27.430 に答える
3

ジオメトリだけがあり、法線がない場合は、各頂点で法線を生成する小さなプログラムを作成できます。一般的なプロセスは、指定された頂点を共有する面の面法線を平均化することです。ただし、立方体などのより「離散的な」形状 (申し訳ありませんが数学者) の場合は、1 つの面法線のみを使用し、それを片側の頂点法線に使用することが望ましい場合があります。

この Lighthouse3D チュートリアルでは、この USC レクチャー のスライド 22 と同様に、頂点法線の背後にある数学について説明しています。

于 2013-03-01T01:53:31.690 に答える