2

ライティングには、フラグメントシェーダーの法線ベクトルが必要です。私が読んだチュートリアルでは、モデルの頂点と一緒に通常のデータを提供するように求められます。しかし、法線は頂点によって指定された面によってすでに与えられていませんか?

法線を計算するには、三角形の3つの頂点すべてが必要です。しかし、私が知る限り、頂点シェーダーの各パスで1つの頂点にしかアクセスできません。

頂点データに基づいて各ピクセルの法線ベクトルを計算するにはどうすればよいですか?その後、法線マップを適用したいのですが、それは後で行われるため、この質問とはあまり関係がありません。

4

1 に答える 1

2

しかし、法線は頂点によって指定された面によってすでに与えられていませんか?

はいといいえ。技術的には、面ごとの法線を決定できますが、通常、モデラーで3Dモデルを設計するアーティストは、法線を微調整して照明計算を微調整したいと考えています。

頂点データに基づく各ピクセルの法線ベクトル?

法線を可変変数(varyingまたはoutGLSLバージョンによってはキーワード)としてフラグメントシェーダーに渡すだけです。法線ベクトルは、バリーセントリックに補間されます。次に、フラグメントシェーダーで単位長に正規化できます。

于 2013-01-04T00:32:08.860 に答える