2007年10月04日

DirectX 9: レンダリングパイプラインの構造

レンダリングパイプラインを構成する三要素とその役割

●頂点シェーダ
頂点バッファを入力とし、座標変換やライティングを行う。
座標変換はカメラ座標などを考慮し、最終的に出力する座標系への変換を行う。
ライティングはポリゴンに光を当てたときに、ライト、マテリアル、法線ベクトルの情報を元に、どのように色が変化するか、どのように反射をするかの計算を行う。処理後はディフューズとスペキュラーの二つの成分に分割される。ディフューズは色成分、スペキュラーは光沢成分である。

●ラスタライザ
頂点シェーダで処理された頂点データを入力とし、各頂点データから三角形を構成するデータを作成する。これをトライアングルセットアップと言う。そしてDDA(Digital Differential Analyzer)により、各頂点データを用いて三角形の内部をピクセルで塗りつぶしていく。この際にピクセル間の色を補完する仕事も行う。

●ピクセルシェーダ
テクスチャと、ラスタライザで処理されたデータをもとに、テクスチャマッピングや、アルファブレンディング、フォグなどの処理を行う。そしてレンダリングターゲット(サーフェイス)へと、出力を行う。