DirectX再入門3

頂点シェーダとピクセルシェーダ

頂点シェーダは頂点単位で処理を行うが、
ピクセルシェーダは一つ一つのピクセル単位で処理を行う。
そして、ピクセルシェーダが行う処理の中で特に重要なのが、テクスチャマッピングである。

テクスチャマッピング

模様(テクスチャ)画像から必要な部分を抜き出し、
ポリゴンに貼り付ける(マッピング)する処理のこと。

テクスチャ座標

テクスチャの抜き出す部分の座標のこと。

テクスチャステージ

テクスチャとポリゴンの合成値・方法を決めるところ。
合成値として以下の値を設定する。(arg1

  • ディフューズ成分
  • スペキュラー成分
  • テクセルの色成分
  • 定数値

合成方法として以下の方法から選択する。

  • どちらかをそのまま出力する
  • 両方を掛け合わせる
  • 両方を足し合わせる

IDIRECT3DDEVICE9::SetTextureStageState(stage, type, value)
@param stage ステージ識別子
@param type D3DTEXTURESTAGESTATETYPE列挙型
@param value ステート値

D3DTEXTURESTAGESTATETYPE列挙型
  • D3DTSS_COLOROP:valueがD3DTOP_SELECTARG1の場合、arg1をそのまま出力
テクスチャ
  1. LPDIRECT3DTEXTURE9でテクスチャの宣言
  2. D3DXCreateTextureFromFile(LPDIRECT3DDEVICE9*, fileName, LPDIRECT3DTEXTURE9*)でテクスチャの読み込み
  3. IDIRECT3DDEVICE9::SetTexture(stage, LPDIRECT3DTEXTURE9*)…stageはステージ識別子
ラッピングモードの設定

IDIRECT3DDEVICE9::SetSamplerState(stage, type, value)