Platform SDK: DirectX

D3DRENDERSTATETYPE

D3DRENDERSTATETYPE 列挙型は、IDirect3DDevice7::SetRenderState および IDirect3DDevice7::GetRenderState メソッドによって設定および取得されるレンダリング ステートを定義する。

typedef enum _D3DRENDERSTATETYPE { 
    D3DRENDERSTATE_ANTIALIAS          = 2,    // アンチエイリアシング モード。
    D3DRENDERSTATE_TEXTUREPERSPECTIVE = 4,    // パースペクティブ補正。
    D3DRENDERSTATE_ZENABLE            = 7,    // Z テストを有効にする。
    D3DRENDERSTATE_FILLMODE           = 8,    // 塗りつぶしモード。
    D3DRENDERSTATE_SHADEMODE          = 9,    // シェーディング モード。
    D3DRENDERSTATE_LINEPATTERN        = 10,   // 直線パターン。
    D3DRENDERSTATE_ZWRITEENABLE       = 14,   // Z 書き込みを有効にする。
    D3DRENDERSTATE_ALPHATESTENABLE    = 15,   // アルファ テストを有効にする。
    D3DRENDERSTATE_LASTPIXEL          = 16,   // 最後のピクセルを直線で描く。
    D3DRENDERSTATE_SRCBLEND           = 19,   // ソースのブレンディング係数。
    D3DRENDERSTATE_DESTBLEND          = 20,   // デスティネーションのブレンディング係数。
    D3DRENDERSTATE_CULLMODE           = 22,   // 背面カリング モード。
    D3DRENDERSTATE_ZFUNC              = 23,   // Z 比較機能。
    D3DRENDERSTATE_ALPHAREF           = 24,   // 参照アルファ値。
    D3DRENDERSTATE_ALPHAFUNC          = 25,   // アルファ比較機能。
    D3DRENDERSTATE_DITHERENABLE       = 26,   // ディザリングを有効にする。
    D3DRENDERSTATE_ALPHABLENDENABLE   = 27,   // アルファ ブレンディングを有効にする。
    D3DRENDERSTATE_FOGENABLE          = 28,   // フォグを有効にする。
    D3DRENDERSTATE_SPECULARENABLE     = 29,   // スペキュラ ハイライトを有効にする。
    D3DRENDERSTATE_ZVISIBLE           = 30,   // Z チェックを有効にする。
    D3DRENDERSTATE_STIPPLEDALPHA      = 33,   //点描アルファを有効にする。
    D3DRENDERSTATE_FOGCOLOR           = 34,   // フォグ カラー。
    D3DRENDERSTATE_FOGTABLEMODE       = 35,   // フォグ モード。
    D3DRENDERSTATE_FOGTABLESTART      = 36,   // フォグ テーブル開始 (D3DRENDERSTATE_FOGSTART と同じ)。
    D3DRENDERSTATE_FOGTABLEEND        = 37,   // フォグ テーブル終了 (D3DRENDERSTATE_FOGEND と同じ)。
    D3DRENDERSTATE_FOGTABLEDENSITY    = 38,   // フォグ テーブル密度 (D3DRENDERSTATE_FOGDENSITY と同じ)。
    D3DRENDERSTATE_FOGSTART           = 36,   // フォグ開始 (頂点とピクセル フォグに対して)。
    D3DRENDERSTATE_FOGEND             = 37,   // フォグ終了 (頂点とピクセル フォグに対して)。
    D3DRENDERSTATE_FOGDENSITY         = 38,   // フォグ密度 (頂点とピクセル フォグに対して)。
    D3DRENDERSTATE_EDGEANTIALIAS      = 40,   // アンチエイリアス エッジ。
    D3DRENDERSTATE_COLORKEYENABLE     = 41,   // カラー キー透過を有効にする。
    D3DRENDERSTATE_ZBIAS              = 47,   // Z バイアス。
    D3DRENDERSTATE_RANGEFOGENABLE     = 48,   // 範囲ベースのフォグを有効にする。
    D3DRENDERSTATE_STENCILENABLE      = 52,   // ステンシル処理を有効または無効にする。
    D3DRENDERSTATE_STENCILFAIL        = 53,   // ステンシル処理。
    D3DRENDERSTATE_STENCILZFAIL       = 54,   // ステンシル処理。
    D3DRENDERSTATE_STENCILPASS        = 55,   // ステンシル処理。
    D3DRENDERSTATE_STENCILFUNC        = 56,   // ステンシル比較関数。
    D3DRENDERSTATE_STENCILREF         = 57,   // ステンシル テストの参照値。
    D3DRENDERSTATE_STENCILMASK        = 58,   // ステンシル テストで使用されるマスク値。
    D3DRENDERSTATE_STENCILWRITEMASK   = 59,   // ステンシル バッファ書き込みマスク。
    D3DRENDERSTATE_TEXTUREFACTOR      = 60,   // テクスチャ係数。
    D3DRENDERSTATE_WRAP0              = 128,  // 1 番目のテクスチャ座標セットのラップ フラグ。
       // ここでは 1 から 6 のラップ レンダリング ステートは省略。
    D3DRENDERSTATE_WRAP7              = 135,  // 最後のテクスチャ座標セットのラップ フラグ。
    D3DRENDERSTATE_CLIPPING            = 136, // プリミティブのクリッピングを有効または無効にする。
    D3DRENDERSTATE_LIGHTING            = 137, // ライティングを有効または無効にする。
    D3DRENDERSTATE_EXTENTS             = 138, // スクリーン範囲の更新を有効または無効にする。
    D3DRENDERSTATE_AMBIENT             = 139, // シーンのアンビエント色。
    D3DRENDERSTATE_FOGVERTEXMODE       = 140, // 頂点フォグのフォグ モード。
    D3DRENDERSTATE_COLORVERTEX         = 141, // 頂点単位の色を有効または無効にする。
    D3DRENDERSTATE_LOCALVIEWER         = 142, // パースペクティブ スペキュラ ハイライトを有効または無効にする。
    D3DRENDERSTATE_NORMALIZENORMALS    = 143, // 頂点法線の自動正規化を有効にする。
    D3DRENDERSTATE_COLORKEYBLENDENABLE = 144, // アルファ ブレンディング カラー キーを有効または無効にする。
    D3DRENDERSTATE_DIFFUSEMATERIALSOURCE  = 145, // 頂点単位のディフーズ色の位置。
    D3DRENDERSTATE_SPECULARMATERIALSOURCE = 146, // 頂点単位のスペキュラ色の位置。
    D3DRENDERSTATE_AMBIENTMATERIALSOURCE  = 147, // 頂点単位のアンビエント色の位置。
    D3DRENDERSTATE_EMISSIVEMATERIALSOURCE = 148, // 頂点単位のエミッション色の位置。
    D3DRENDERSTATE_VERTEXBLEND              = 151, // 複数の行列による頂点ブレンディング モード。
    D3DRENDERSTATE_CLIPPLANEENABLE          = 152, // 1 つまたは複数のユーザー定義クリッピプ面を有効にする
    D3DRENDERSTATE_FORCE_DWORD        = 0x7fffffff, 
} D3DRENDERSTATETYPE; 
D3DRENDERSTATE_ANTIALIAS
希望のタイプのフルシーン アンチエイリアシングを指定する D3DANTIALIASMODE 列挙型のメンバのいずれか。デフォルト値は、D3DANTIALIAS_NONE である。詳細については、「フルシーン アンチエイリアシング」および「アンチエイリアシング ステート」を参照すること。

フルシーン アンチエイリアシングは、D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT または D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 能力を示すデバイスに限り、有効にすることができる。

D3DRENDERSTATE_TEXTUREPERSPECTIVE
TRUE を設定すると、パースペクティブ補正テクスチャ マッピングが有効になる (「パースペクティブ補正」を参照すること)。デフォルト値は TRUE である。IDirect3DDvice3 より前のインターフェイスでは、デフォルト値は FALSE である。詳細については、「テクスチャ パースペクティブ ステート」を参照すること。
D3DRENDERSTATE_ZENABLE
D3DZBUFFERTYPE 列挙型のメンバの 1 つとしての深度バッファ ステート。Z バッファリングを有効にするには D3DZB_TRUE、w バッファリングを有効にするには D3DZB_USEW、深度バッファリングを無効にするには D3DZB_FALSE を、それぞれ設定する。

レンダリングの対象となるサーフェスに深度バッファがアタッチされている場合、このレンダリング ステートのデフォルト値は D3DZB_TRUE であり、それ以外の場合は D3DZB_FALSE である。

D3DRENDERSTATE_FILLMODE
D3DFILLMODE 列挙型のメンバのいずれかまたは複数。デフォルト値は D3DFILL_SOLID である。
D3DRENDERSTATE_SHADEMODE
D3DSHADEMODE 列挙型のメンバのいずれかまたは複数。デフォルト値は D3DSHADE_GOURAUD である。
D3DRENDERSTATE_LINEPATTERN
D3DLINEPATTERN 構造体。デフォルト値は wRepeatPattern が 0 で、wLinePattern が 0 である。
D3DRENDERSTATE_ZWRITEENABLE
深度バッファへの書き込みを有効にするには TRUE に設定する。デフォルト値は TRUE である。アプリケーションはこのメンバを利用することにより、システムが新しい深度値で深度バッファを更新してしまうのを防ぐことができる。FALSE の場合、レンダリング ステート D3DRENDERSTATE_ZFUNC (深度バッファリングが行われていると仮定) に従って深度比較が実行されるが、深度値はバッファに書き込まれない。
D3DRENDERSTATE_ALPHATESTENABLE
アルファ テストを可能にするには、TRUE。デフォルト値は FALSE である。このメンバを使用すると、アルファ値に基づいてピクセルを受け取るか拒否するかを判断するテストをオフにできる。

入ってくるアルファ値は、D3DRENDERSTATE_ALPHAFUNC レンダリング ステートにより提供される比較関数を用いて参照アルファ値と比較される。このモードが可能になると、テストが成功した場合に限り、アルファ ブレンディングが起きる。

D3DRENDERSTATE_LASTPIXEL
直線や三角形の最後のピクセルを描画可能とするには、FALSE に設定する。デフォルト値は TRUE である。
D3DRENDERSTATE_SRCBLEND
D3DBLEND 列挙型のメンバのいずれか。デフォルト値は D3DBLEND_ONE である。
D3DRENDERSTATE_DESTBLEND
D3DBLEND 列挙型のメンバの 1 つ。デフォルト値は D3DBLEND_ZERO である。
D3DRENDERSTATE_CULLMODE
背面を向ける三角形を切り取る必要が生じた場合に、その方法を指定する。D3DCULL 列挙型のメンバのいずれかを設定できる。デフォルト値は D3DCULL_CCW である。
D3DRENDERSTATE_ZFUNC
D3DCMPFUNC 列挙型のメンバのいずれか。デフォルト値は D3DCMP_LESSEQUAL である。このメンバは、アプリケーションにカメラからの距離を基準とするピクセルの受け取りや受け取り拒否を許可する。

ピクセルの深度値を深度バッファの値と比較する。ピクセルの深度値が比較関数で許可された場合にピクセルが書き込まれる。

深度値が深度バッファに書き込まれるのは、レンダリング ステートが TRUE の場合だけである。

この深度テストに失敗した方が、ソフトウェアによるラスタ化や多くのハードウェア アクセラレータの処理は速くなる。これは、ピクセルのレンダリング処理を行わない場合には、テクスチャをフィルタ処理したり変調したりする必要がなくなるためである。

D3DRENDERSTATE_ALPHAREF
アルファ テストが有効に設定されている場合に、ピクセルをテストするための基準アルファ値を指定する値。これは、DWORD レンダリング ステート値の下位 8 ビットにあたる 8 ビット値である。値は 0x00000000 から 0x000000FF の範囲内である。
D3DRENDERSTATE_ALPHAFUNC
D3DCMPFUNC 列挙型のメンバのいずれか。デフォルト値は、D3DCMP_ALWAYS である。このメンバは、アプリケーションにアルファ値を基準とするピクセルの受け取りや受け取り拒否を許可する。
D3DRENDERSTATE_DITHERENABLE
TRUE のとき、ディザリングを可能とする。デフォルト値は FALSE である。
D3DRENDERSTATE_ALPHABLENDENABLE
アルファ ブレンドによる透明化を有効にする場合、TRUE にセットする。デフォルト値は FALSE である。このメンバは従来の D3DRENDERSTATE_BLENDENABLE レンダリング ステートに代わって使用される。詳細については、「注意」を参照すること。

DirectX 5.0 以前では、このレンダリング ステートを利用して、ソフトウェア ラスタライザはカラー キー検索とアルファ ブレンディングの切り替えを行っていた。現在は D3DRENDERSTATE_COLORKEYENABLE レンダリング ステートを使用して、カラー キーイングを切り替える (ハードウェアは、アルファ ブレンディングの切り替えにのみ、D3DRENDERSTATE_BLENDENABLE レンダリング ステートを使用してきた)。

アルファ ブレンディングのタイプは D3DRENDERSTATE_SRCBLEND と D3DRENDERSTATE_DESTBLEND レンダリング ステートによって決定される。D3DRENDERSTATE_COLORKEYENABLE と共に D3DRENDERSTATE_ALPHABLENDENABLE を使用すれば、アルファ ブレンディングの微妙なコントロールが可能になる。

D3DRENDERSTATE_ALPHABLENDENABLE は、D3DTEXTUREBLEND 列挙型により指定されるテクスチャ ブレンディング モードには影響を与えない。テクスチャ ブレンディングは、論理的にはピクセル パイプラインの D3DRENDERSTATE_ALPHABLENDENABLE 部分よりずっと前に行われる。両者が相互に関連するのは、D3DTEXTUREBLEND フェーズ後のポリゴンに残るアルファ部分が、D3DRENDERSTATE_ALPHABLENDENABLE フェーズでフレーム バッファの内容との相互作用を制御するために使われることがあるだけである。

アプリケーションは、D3DDEVICEDESC7 構造体の 3DDEVCAPS_DRAWPRIMTLVERTEX フラグを調べて、このレンダリング ステートがサポートされているかどうかをチェックしなければならない。

D3DRENDERSTATE_FOGENABLE
TRUE はフォグ ブレンディングを可能にする。デフォルト値は FALSE である。詳細については、「フォグ ブレンディング」および「フォグ」を参照すること。
D3DRENDERSTATE_SPECULARENABLE
TRUE はスペキュラ ハイライトを可能にする。デフォルト値は FALSE である。IDirect3DDevice3 より前のインターフェイスでは、デフォルト値は TRUE である。

スペキュラ ハイライトは、光の当たっているオブジェクトの各頂点がそのオブジェクトの原点にあるかのように算出される。これは、オブジェクトが原点の周囲でモデル化され、光源とオブジェクト間の距離が比較的に大きい場合に限り、予測値を与える。

このメンバが TRUE に設定されている場合、テクスチャ カスケードとアルファ ブレンディングの間でベース カラーにスペキュラ色が追加される。

D3DRENDERSTATE_ZVISIBLE
サポートされない。
D3DRENDERSTATE_STIPPLEDALPHA
TRUE のとき、点描アルファを可能とする。デフォルト値は FALSE である。

現在のソフトウェア ラスタライザは、このレンダリング ステートを無視する。現在のハードウェアがこのレンダリング ステートをサポートするかどうかを調べるには、D3DPRIMCAPS 構造体の D3DPSHADECAPS_ALPHAFLATSTIPPLED フラグを使用する。

D3DRENDERSTATE_FOGCOLOR
D3DCOLOR 型の値。デフォルト値は 0 である。詳細については、「フォグ カラー」を参照すること。
D3DRENDERSTATE_FOGTABLEMODE
ピクセル フォグに使用されるフォグ式。D3DFOGMODE 列挙型のメンバのいずれかを設定する。デフォルト値は D3DFOG_NONE である。詳細については、「ピクセル フォグ」を参照すること。
D3DRENDERSTATE_FOGTABLESTART
D3DRENDERSTATE_FOGSTART にマッピングする。
D3DRENDERSTATE_FOGTABLEEND
D3DRENDERSTATE_FOGEND にマッピングする。
D3DRENDERSTATE_FOGTABLEDENSITY
このレンダリング ステートは D3DRENDERSTATE_FOGDENSITY レンダリング ステートにマッピングする。
D3DRENDERSTATE_FOGSTART
線形フォグ モードにおける、ピクセルまたは頂点フォグ エフェクトの開始深度。頂点フォグの場合、深度はワールド空間で指定される。ピクセル フォグの場合は、デバイス空間 [0.0, 1.0] またはワールド空間のいずれかで指定される。ピクセル フォグでは、フォグ計算に Z が使用される場合はこれらの値はデバイス空間にあり、目との相対フォグ (W フォグ) が使用される場合はワールド空間にある。詳細については、「フォグ パラメータ」および「視点からの相対深度 対 Z ベースの深度」を参照すること。

このレンダリング ステートの値は浮動小数点値である。IDirect3DDevice7::SetRenderState および IDirect3DDevice7::SetRenderState は DWORD 値を使用するため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。

lpd3dDevice->SetRenderState( D3DRENDERSTATE_FOGSTART, *((LPDWORD) (&fFogStart)) );
D3DRENDERSTATE_FOGEND
線形フォグ モードにおける、ピクセルまたは頂点フォグ エフェクトの終了深度。頂点フォグの場合、深度はワールド空間で指定される。ピクセル フォグの場合は、デバイス空間 [0.0, 1.0] またはワールド空間のいずれかで指定される。ピクセル フォグでは、フォグ計算に Z が使用される場合はこれらの値はデバイス空間にあり、目との相対フォグ (W フォグ) が使用される場合はワールド空間にある。詳細については、「フォグ パラメータ」および「視点からの相対深度 対 Z ベースの深度」を参照すること。

このレンダリング ステートの値は浮動小数点値である。IDirect3DDevice7::SetRenderState および IDirect3DDevice7::SetRenderState は DWORD 値を使用するため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。

lpd3dDevice->SetRenderState( D3DRENDERSTATE_FOGDENSITY, *((LPDWORD) (&fFogDensity)) );
D3DRENDERSTATE_FOGDENSITY
指数フォグ モード (D3DFOG_EXP および D3DFOG_EXP2) で使用するピクセルまたは頂点フォグのフォグ密度。有効な密度は 0.0 から 1.0 の範囲内である。デフォルト値は 1,0 である。詳細については「フォグ パラメータ」を参照すること。

このレンダリング ステートの値は浮動小数点値である。IDirect3DDevice7::SetRenderState および IDirect3DDevice7::SetRenderState は DWORD 値を使用するため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。

lpd3dDevice->SetRenderState( D3DRENDERSTATE_FOGDENSITY, *((LPDWORD) (&fFogDensity)) );
D3DRENDERSTATE_EDGEANTIALIAS
TRUE は、オブジェクトの凸面の輪郭を形成する線をアンチエイリアスする。デフォルト値は FALSE である。詳細については、「エッジ アンチエイリアシング」および「アンチエイリアシング ステート」を参照すること。TRUE の場合、レンダリングの対象となるのは線のみで、シーン内のポリゴンの外側エッジに限定される。このレンダリング ステートが設定されていて、三角形または点が描画されると、その動作は不定である。アンチエイリアシングは、隣接ピクセルの値の平均値を取ることによって実行される。アンチエイリアシングを行うのは最良のやり方ではないが、効率的ではある。この種の操作をサポートするハードウェアは普及しつつある。

エッジ アンチエイリアシングは、D3DPRASTERCAPS_ANTIALIASEDGES 能力を示すデバイスに限り、有効にすることができる。

D3DRENDERSTATE_COLORKEYENABLE
TRUE は、カラー キー透過を可能にする。デフォルト値は FALSE である。このレンダリング ステートを D3DRENDERSTATE_ALPHABLENDENABLE で使用すると、ブレンディングの微調整が可能になる。

アプリケーションでは D3DDEVICEDESC7 構造体の D3DDEVCAPS_DRAWPRIMTLVERTEX フラグを調べて、このレンダリング ステートがサポートされているかどうかをチェックする。

カラー キー透過が有効な場合、DDSD_CKSRCBLT フラグで作成されたテクスチャ サーフェスのみ影響を受ける。DDSD_CKSRCBLT フラグで作成されていないサーフェスは、カラー キー透過のエフェクトを示す。

D3DRENDERSTATE_ZBIAS
物理的には同一面上にあるポリゴンが別々に存在するように見せる、0 から 16 までの範囲の整数値。Z バイアス値が高いポリゴンは、Z バイアス値が低いポリゴンより手前に表示されるため、描画順序を決めるソートを実行する必要はない。たとえば、値 1 を持つポリゴンは、値 0 のポリゴンよりも手前に見える。デフォルト値は 0 である。詳細については、「深度バッファの使用」を参照すること。
D3DRENDERSTATE_RANGEFOGENABLE
TRUE を設定すると、範囲ベースの頂点フォグが有効になる (デフォルト値は FALSE。この場合は深度に基づくフォグが使用される)。範囲準拠のフォグでは、シーンにおけるオブジェクトの深さ (z 座標) ではなく、オブジェクトのビューアからの距離でフォグ エフェクトを計算する。範囲準拠のフォグでは、通常すべてのフォグ計算メソッドが動くが、計算に深さでなく範囲を使う点だけが異なる。

範囲はフォグ計算に使うのに正しい要素であるが、範囲が計算上高価となる一方、深さは通常計算済みなので、代って深さが広く使われる。深度を使用してフォグを計算すると、周辺オブジェクトのフォグ エフェクトが視点の移動と共に変化するという好ましくない影響が出る。この場合、深度は変化するが範囲は一定のままである。

このレンダリング ステートは D3DVERTEX 頂点に対してのみ作用する。D3DLVERTEX または D3DTLVERTEX 頂点を指定する場合、RGBF フォグ値の F (フォグ) 要素が範囲について補正済みでなければならない。

現在のところ、ピクセル単位での範囲ベースのフォグをサポートするハードウェアは存在しないため、範囲補正は頂点フォグでのみ行われる。詳細については、「範囲ベースのフォグ」および「頂点フォグ」を参照すること。

D3DRENDERSTATE_STENCILENABLE
TRUE の場合はステンシル操作が可能になり、FALSE では無効になる。デフォルト値は FALSE である。詳細については、「ステンシル バッファ」を参照すること。
D3DRENDERSTATE_STENCILFAIL
ステンシル テストに失敗したときに実行するステンシル操作。これには D3DSTENCILOP 列挙型のメンバのいずれかを設定できる。デフォルト値は D3DSTENCILOP_KEEP である。詳細については、「ステンシル バッファ」を参照すること。
D3DRENDERSTATE_STENCILZFAIL
ステンシル テストにパスし、深度テスト (Z テスト) に失敗した場合に実行するステンシル操作。これには D3DSTENCILOP 列挙型のメンバのいずれかを設定できる。デフォルト値は D3DSTENCILOP_KEEP である。詳細については、「ステンシル バッファ」を参照すること。
D3DRENDERSTATE_STENCILPASS
ステンシル テストおよび深度 (Z) テストの両方にパスした場合に実行するステンシル操作。これには D3DSTENCILOP 列挙型のメンバのいずれかを設定できる。デフォルト値は D3DSTENCILOP_KEEP である。詳細については、「ステンシル バッファ」を参照すること。
D3DRENDERSTATE_STENCILFUNC
ステンシル テストのための比較関数。これには D3DCMPFUNC 列挙型のメンバのいずれかを設定できる。デフォルト値は D3DCMP_ALWAYS である。

比較関数は、ステンシル バッファの要素を基準値と比較するために使われる。この比較は、基準値のビットと、ステンシル マスク (D3DRENDERSTATE_STENCILMASK レンダリング ステートにより設定) に設定されたステンシル バッファ要素にのみ適用される。TRUE の場合、ステンシル テストにパスする。

D3DRENDERSTATE_STENCILREF
ステンシル テストのための整数基準値。デフォルト値は 0 である。
D3DRENDERSTATE_STENCILMASK
基準値と、それぞれのステンシル バッファ要素に適用し、ステンシル テストのための有効ビットを決定するマスク。デフォルト マスクは 0xFFFFFFFF である。
D3DRENDERSTATE_STENCILWRITEMASK
ステンシル バッファに書き込む値に適用する書き込みマスク。デフォルト マスクは 0xFFFFFFFF である。
D3DRENDERSTATE_TEXTUREFACTOR
D3DTA_TFACTOR テクスチャブレンディング引数、または D3DTOP_BLENDFACTORALPHA テクスチャブレンディング操作を用いたマルチテクスチャ ブレンディングで使用される色。関連する値は D3DCOLOR 変数である。
D3DRENDERSTATE_WRAP0 から D3DRENDERSTATE_WRAP7
複数のテクスチャ座標セットに対するテクスチャラッピング動作。これらのレンダリング ステートの有効値として、D3DWRAPCOORD_0、D3DWRAPCOORD_1、D3DWRAPCOORD_2、および D3DWRAPCOORD_3 フラグを組み合わせることができる。これらの値を設定すると、指定されたテクスチャに対して 1、2、3、および 4 次元方向 (s、t、r、および q 方向と呼ばれる場合もある) のラッピングが実行される。これらのレンダリング ステートのデフォルト値は 0 である (全方向のラッピングが無効)。詳細については、「テクスチャ ラッピング」を参照すること。
D3DRENDERSTATE_CLIPPING
TRUE を設定すると、Direct3D によるプリミティブのクリッピングが有効になる。FALSE を設定すると無効になる。デフォルト値は TRUE である。
D3DRENDERSTATE_LIGHTING
TRUE を設定すると、Direct3D のライティングが有効になる。FALSE を設定すると無効になる。デフォルト値は TRUE である。頂点法線を含む頂点のみ正しくライトが当てられ、法線を含まない頂点ではすべてのライティング計算で 0 の内積が使用される。
D3DRENDERSTATE_EXTENTS
TRUE を設定すると、レンダリングの呼び出しごとにスクリーン範囲が更新される。FALSE を設定すると、スクリーン範囲の更新が無効になる。デフォルト値は FALSE である。
D3DRENDERSTATE_AMBIENT
アンビエント ライトの色。この値は D3DCOLOR 型である。デフォルト値は 0 である。このレンダリング ステートは、従来の D3DLIGHTSTATE_AMBIENT ライト ステートに類似する。
D3DRENDERSTATE_FOGVERTEXMODE
頂点フォグ用のフォグ式。D3DFOGMODE 列挙型のメンバのいずれかを設定する。デフォルト値は D3DFOG_NONE である。詳細については、「頂点フォグ」を参照すること。このレンダリング ステートは、従来の D3DLIGHTSTATE_FOGVERTEXMODE ライティング ステートに類似する。
D3DRENDERSTATE_COLORVERTEX
TRUE を設定すると、頂点単位の色が有効になる。FALSE を設定すると無効になる。デフォルト値は TRUE である。頂点単位の色を有効にすると、個々の頂点に定義された色がライティング計算に含まれるようになる。このレンダリング ステートは、従来の D3DLIGHTSTATE_COLORVERTEX ライティング ステートに類似する。

詳細については、以下のレンダリング ステートを参照すること。

D3DRENDERSTATE_LOCALVIEWER
TRUE を設定すると、カメラとの相対角度に依存したスペキュラ ハイライトが有効になる。FALSE を設定すると、直行スペキュラ ハイライトが使用される。デフォルト値は TRUE である。正射影を使用するアプリケーションでは FALSE に指定すること。
D3DRENDERSTATE_NORMALIZENORMALS
TRUE を設定すると、頂点法線の自動正規化が有効になる。FALSE を設定すると無効になる。デフォルト値は FALSE である。この機能を有効にすると、頂点がカメラ空間にトランスフォームされた後で頂点法線が正規化されるが、計算負荷が大きい。
D3DRENDERSTATE_COLORKEYBLENDENABLE
TRUE を設定すると、アルファ ブレンディング カラー キーイングが有効になる。FALSE を設定すると無効になる。アルファ ブレンディング カラー キー モードは、一致するテクスチャ サンプルのアルファおよびカラーを 0 に設定する。アプリケーションでは、アルファテストおよびアルファ ブレンディング モードを設定して、必要な破棄およびアルファ ブレンディング結果の両方、またはそのいずれかを行う必要がある。
D3DRENDERSTATE_DIFFUSEMATERIALSOURCE
ライティング計算に使用されるディフーズ色のソース。有効値は D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_COLOR1。このレンダリング ステートの値が使用されるのは、D3DRENDERSTATE_COLORVERTEX レンダリング ステートが TRUE に設定されている場合のみである。
D3DRENDERSTATE_SPECULARMATERIALSOURCE
ライティング計算に使用されるスペキュラ色のソース。有効値は D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_COLOR2。
D3DRENDERSTATE_AMBIENTMATERIALSOURCE
ライティング計算に使用されるアンビエント色のソース。有効値は D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_COLOR2。
D3DRENDERSTATE_EMISSIVEMATERIALSOURCE
ライティング計算に使用されるエミッション色のソース。有効値は D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_MATERIAL。
D3DRENDERSTATE_VERTEXBLEND
ジオメトリがある場合、ジオメトリ ブレンディングを実行するために使用する行列の個数。有効値は D3DVERTEXBLENDFLAGS 列挙型のメンバである。デフォルト値は D3DVBLEND_DISABLE。詳細については、「ジオメトリ ブレンディング」を参照すること。
D3DRENDERSTATE_CLIPPLANEENABLE
ユーザー定義クリップ面を有効または無効にする。有効値は、各ビットのステータス (設定の有無) によって対応するユーザー定義クリップ面の起動ステートを切り替える、任意の DWORD である。最下位ビット (ビット 0) はインデックス 0 の最初のクリップ面を制御し、後続ビットはそれより上位のインデックスのクリップ面の起動を制御する。ビットが設定されている場合、シーンのレンダリング中に適切なクリップ面が適用される。デフォルト値は 0 である。

クリップ面を簡単に有効にできるように、D3dtypes.h ヘッダー ファイルには D3DCLIPPLANEn マクロが宣言されている。

D3DRENDERSTATE_FORCE_DWORD
この列挙型を強制的に 32 ビット サイズにコンパイルする。この値は使用されていない。

注意

D3DRENDERSTATE_BLENDENABLE メンバは D3DRENDERSTATE_ALPHABLENDENABLE メンバに置き換えられている。意味がより明瞭になるように名前も変更されている。以前のアプリケーションとの互換性を維持するために、D3DRENDERSTATE_ALPHABLENDENABLE に対応するものとして D3DRENDERSTATE_BLENDENABLE 定数が宣言されている。

#define D3DRENDERSTATE_BLENDENABLE  D3DRENDERSTATE_ALPHABLENDENABLE

Direct3D は、アプリケーションでの便宜を考慮して、(D3DRENDERSTATE_WRAPn ステート値の 1 つを明示的に使用する代わりに) D3DRENDERSTATE_WRAPBIAS 定数を定義し、テクスチャ座標セットのゼロ始点整数値に基づいて、テクスチャ ラッピングを有効にしたり、無効にしたりする。次の例のように、D3DRENDERSTATE_WRAPBIAS 値をテクスチャ座標セットのゼロ始点インデックスに加算して、そのインデックスに対応する D3DRENDERSTATE_WRAPn 値を計算する。

// 変数 dwIndex のインデックスに対応するテクスチャ座標セットを
// 使用するテクスチャに対して、U/V ラッピングを有効にする。
HRESULT hr = lpD3DDevice->SetRenderState(
    dwIndex + D3DRENDERSTATE_WRAPBIAS,  
    D3DWRAP_0 | D3DWRAP1);
 
// dwIndexが 3 の場合、加算の結果の値は、
// D3DRENDERSTATE_WRAP3 (131) に等しくなる。

D3dtypes.h 内の D3DRENDERSTATETYPE の宣言には、DirectX 7.0 インターフェイスでサポートされない従来のレンダリング ステートが含まれている。詳細については、「廃止されたレンダリング ステート」を参照すること。

    D3DRENDERSTATE_TEXTUREHANDLE      = 1,    // テクスチャ ハンドル。
    D3DRENDERSTATE_TEXTUREADDRESS     = 3,    // テクスチャ アドレス。
    D3DRENDERSTATE_WRAPU              = 5,    // u 方向のラップ。
    D3DRENDERSTATE_WRAPV              = 6,    // v 方向のラップ。
    D3DRENDERSTATE_MONOENABLE         = 11,   // モノ レンダリングが有効。
    D3DRENDERSTATE_ROP2               = 12,   // ラスタ化。
    D3DRENDERSTATE_PLANEMASK          = 13,   // 物理的平面マスク。
    D3DRENDERSTATE_TEXTUREMAG         = 17,   // 置き換えられている。
    D3DRENDERSTATE_TEXTUREMIN         = 18,   // 置き換えられている。
    D3DRENDERSTATE_TEXTUREMAPBLEND    = 21,   // マップのブレンディング モード。
    D3DRENDERSTATE_SUBPIXEL           = 31,   // サブピクセル補正が有効。
    D3DRENDERSTATE_SUBPIXELX          = 32,   // x サブピクセル補正が有効。
    D3DRENDERSTATE_STIPPLEENABLE      = 39,   // 点描が有効。
    D3DRENDERSTATE_BORDERCOLOR        = 43,   // 境界色。
    D3DRENDERSTATE_TEXTUREADDRESSU    = 44,   // u テクスチャ アドレッシング モード。
    D3DRENDERSTATE_TEXTUREADDRESSV    = 45,   // v テクスチャ アドレッシング モード。
    D3DRENDERSTATE_MIPMAPLODBIAS      = 46,   // ミップマップ LOD バイアス。
    D3DRENDERSTATE_ANISOTROPY         = 49,   // 最大異方性。
    D3DRENDERSTATE_FLUSHBATCH         = 50,   // DP バッチ処理の明示的フラッシュ (DX5 のみ)。
    D3DRENDERSTATE_TRANSLUCENTSORTINDEPENDENT=51, / /ソート非依存型透明性が有効。
    D3DRENDERSTATE_STIPPLEPATTERN00   = 64,   // 点描パターンの最初の線。
       // ここでは、点描パターンの 01 から 30 までを省略。
    D3DRENDERSTATE_STIPPLEPATTERN31   = 95,   // 点描パターンの最後の線。

動作環境

  Windows NT/2000 :Windows NT 4.0 SP3 またはそれ以降が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン : DirectX 2.0 以降が必要。
  ヘッダー : d3dtypes.h で宣言。

参照

IDirect3DDevice7::SetRenderStateIDirect3DDevice7::GetRenderStateレンダリング ステート