シェーディング
定義: マテリアルをオブジェクトに適用するプロセス
Zバッファ
-
フレーム バッファ フレーム
バッファは、画像のピクセル データを格納するために使用されるメモリ領域です。通常、各要素が画面上のピクセルに対応する 2 次元配列で表されます。フレーム バッファー内の各ピクセルは、色情報 (赤、緑、青の成分など) またはその他の画像属性を保存できます。レンダリング プロセス中に、グラフィックス パイプラインは計算されたピクセル カラー値をフレーム バッファー内の対応する位置に書き込み、最終的に画面上に表示します。 -
Depth Buffer
Depth Buffer は、各ピクセルの深度値 (または Z 値) を格納するために使用されるバッファーです。奥行き値は、シーン内のピクセルの距離または奥行き情報を表します。レンダリング プロセス中に、深度値を使用してピクセルの可視性とオクルージョン関係を決定できます。複数のオブジェクトが重なっている場合、深度テストは、ピクセルの深度値に基づいてフレーム バッファー内のピクセル カラーを更新するかどうかを決定できます。 -
深度テスト
深度テストは、ピクセルの深度値と深度バッファ内の対応する位置の深度値を比較することによって実行されます。ピクセルの深度値が深度バッファーの値より小さい (またはカメラに近い) 場合、フレーム バッファーのピクセル カラーが更新され、深度バッファーの深度値が更新されます。それ以外の場合、ピクセルは遮蔽されているとみなされ、更新されません。
フレーム バッファーと深度バッファーは、レンダリング プロセスで重要な役割を果たします。これらは、ピクセルの可視性を決定し、オクルージョン関係を処理し、最終的に最終的な画像を生成するのに役立ちます。デプス バッファー テクノロジーは、特に複雑な 3 次元シーンを扱う場合に、レンダリング効率とリアリズムを向上させることができます。
シェーディングモデル
ランバーシアン (拡散) シェーディング
- 入力パラメータ
- 観察者の方向、v
- 表面法線、n
- ライトの方向、l (多くのライトのそれぞれ)
- 表面パラメータ (色、光沢など)
- 光の減衰
ある点における光の強度: I/r^2
3.ディフューズシェーディング
Ld = kd * (I / r^2) * max(0, n*l) = 拡散反射係数 *
フォンシェーディング
古典的な照明モデルは、各ピクセルの拡散反射、鏡面反射、周囲照明コンポーネントを計算して、ピクセルの色を決定します。Phong Shading の計算プロセスは次のとおりです。
-
拡散反射成分の計算 拡散
反射成分は、オブジェクトの表面での光の散乱の度合いを表し、光の入射角と表面法線との間の角度に関係します。表面法線と光源の方向。 -
オブジェクトの表面での光の反射の度合いを表す鏡面反射コンポーネントを計算します。鏡面反射成分の計算には、光の反射方向、観察者の方向、物体表面の滑らかさが含まれます。 -
アンビエント照明コンポーネントを追加すると、
周囲の環境からオブジェクトの表面が受け取る光が参照されます。周囲照明コンポーネントは通常、定数であるか、グローバル照明モデルを通じて計算されます。 -
拡散光、鏡面反射光、および周囲光のコンポーネントが加算されて、最終的なピクセル カラーが得られます。
ブリンフォンシェーディング
Phong Shading に基づいて改良されました。
- 半範囲ベクトルを使用して計算する
- 指数 p はハイライト範囲を制御します
鏡面反射の計算:
全体的な照明の計算 (ピクセルごとに同じ計算を行います):
着色頻度
- フラグシェーディング:反対のシェーディング
- グーロー シェーディング: 三角形の頂点の色を計算し、補間によって三角形内でこれらの色の値を滑らかに遷移させます。各頂点にはカラー値が割り当てられます。これらの色の値は、照明計算、テクスチャ マッピング、またはその他の方法を通じて取得できます。次に、三角形の内部で、各ピクセルのカラー値が補間によって計算されます。
- フォン シェーディング: ピクセルごとのシェーディング
頂点数と着色方法、着色頻度の関係は以下の通りです。
リアルタイム レンダリング パイプライン
- 頂点入力:
- 頂点位置、法線、テクスチャ座標、その他の情報を含む頂点データをアプリケーションから取得します。
- 頂点処理:
- 変換操作は各頂点に対して実行され、モデル空間からワールド空間、カメラ空間、投影空間に変換されます。
- 照明計算を実行して、頂点の色または光の強度を計算します。
- プリミティブアセンブリ:
- 頂点を点、線、三角形などのプリミティブに組み立てます。
- ラスタライズ:
- プリミティブを画面上のピクセルに変換します。
- プリミティブの形状と位置に従って、対応するピクセル フラグメントが画面上に生成されます。
- フラグメント処理:
- 各ピクセル フラグメントを補間およびテクスチャ マップして、フラグメントのカラーとテクスチャの座標を取得します。
- 照明計算を実行して、フラグメントの最終的な色を計算します。
- ピクセル操作:
- 深度テストなどの操作を実行する
- 最後に、ピクセルの色がフレーム バッファーに書き込まれます。
- 出力マージ:
- フレーム バッファー内のピクセル データを表示デバイスに出力して、最終画像を生成します。
テクスチャマッピング
- 3D空間に対応する2D平面点
- 各三角形の頂点にテクスチャ座標 (u, v) を割り当てます。
重心座標
-
重心座標の計算 三角形の
3 点座標 A、B、C が与えられると、平面内の点 (x, y) はこれら 3 点座標の線形結合として記述できます。α+β+γ=1 の場合、対応する (x, y) が重心座標になります。
-
用途:
3つの頂点A、B、Cの属性に基づいて点の属性、位置、色、深さ、法線ベクトルなどを補間し、その点が三角形内にあるかどうかを判定する補間処理に使用します。
テクスチャのアンチエイリアス
- MIPMAP テクノロジは
、さまざまなサイズの一連のテクスチャ マップを事前に生成し、オブジェクトの距離とサイズに基づいてサンプリングに適切な MIPMAP レベルを選択することで、元のテクスチャ マップのサンプル数を削減します。
テクスチャの適用
-
環境光
-
バンプテクスチャ