3

顔の法線は「顔に垂直なベクトル」であると言われましたが、3D 形状を描画しようとすると、まだ取得できません。誰かがより明確な説明、または(さらに良い)図を教えてくれませんか?私を混乱させるコードの塊は、への呼び出しglNormal3f(x, y, z)です。

4

2 に答える 2

5

面法線は、面に垂直である必要がない頂点法線とは異なります。

面法線は、面が向いている方向を決定するために使用されます。カメラから離れた方向を向いている場合、レンダリング時に顔を無視できます。また、素早いフラット レンダリングまたはファセット レンダリングを実行するときに、顔の色を決定するためにも使用されます。

頂点法線は、オブジェクトに丸みを加えるために使用されます。各頂点の法線は、軸から外側を向いている円柱の半径に沿っています。昔ながらの船の車輪を想像してみてください。

ここに画像の説明を入力

ここで、ハンドルは頂点法線であるため、その点での円柱の実際の曲率を表します。

円柱を切り取ると、正多角形のチューブが得られます。顔の法線を使用してこれをレンダリングするだけで、次のようになります。

フラットシェーディング

頂点法線を使用してレンダリングすると、次のようになります。

滑らかな陰影

円柱の端にファセットがまだ見えますが、ボディは滑らかに見えます。

于 2013-05-08T14:04:24.833 に答える
4

簡単な Google と、次の図を含むこのチュートリアルを見つけることができます。

OpenGL

ご覧のとおり、法線は面に対して垂直な方向ベクトルです。これらは照明計算で使用されるため、指向性照明がある場合に正しいシェーディングを表示できます。

于 2013-05-08T13:08:40.277 に答える