D3DRENDERSTATETYPE 列挙型
D3DRENDERSTATETYPE 列挙型
デバイスのレンダリング ステートを定義する。
構文
typedef enum _D3DRENDERSTATETYPE {
D3DRS_ZENABLE = 7,
D3DRS_FILLMODE = 8,
D3DRS_SHADEMODE = 9,
D3DRS_ZWRITEENABLE = 14,
D3DRS_ALPHATESTENABLE = 15,
D3DRS_LASTPIXEL = 16,
D3DRS_SRCBLEND = 19,
D3DRS_DESTBLEND = 20,
D3DRS_CULLMODE = 22,
D3DRS_ZFUNC = 23,
D3DRS_ALPHAREF = 24,
D3DRS_ALPHAFUNC = 25,
D3DRS_DITHERENABLE = 26,
D3DRS_ALPHABLENDENABLE = 27,
D3DRS_FOGENABLE = 28,
D3DRS_SPECULARENABLE = 29,
D3DRS_FOGCOLOR = 34,
D3DRS_FOGTABLEMODE = 35,
D3DRS_FOGSTART = 36,
D3DRS_FOGEND = 37,
D3DRS_FOGDENSITY = 38,
D3DRS_RANGEFOGENABLE = 48,
D3DRS_STENCILENABLE = 52,
D3DRS_STENCILFAIL = 53,
D3DRS_STENCILZFAIL = 54,
D3DRS_STENCILPASS = 55,
D3DRS_STENCILFUNC = 56,
D3DRS_STENCILREF = 57,
D3DRS_STENCILMASK = 58,
D3DRS_STENCILWRITEMASK = 59,
D3DRS_TEXTUREFACTOR = 60,
D3DRS_WRAP0 = 128,
D3DRS_WRAP1 = 129,
D3DRS_WRAP2 = 130,
D3DRS_WRAP3 = 131,
D3DRS_WRAP4 = 132,
D3DRS_WRAP5 = 133,
D3DRS_WRAP6 = 134,
D3DRS_WRAP7 = 135,
D3DRS_CLIPPING = 136,
D3DRS_LIGHTING = 137,
D3DRS_AMBIENT = 139,
D3DRS_FOGVERTEXMODE = 140,
D3DRS_COLORVERTEX = 141,
D3DRS_LOCALVIEWER = 142,
D3DRS_NORMALIZENORMALS = 143,
D3DRS_DIFFUSEMATERIALSOURCE = 145,
D3DRS_SPECULARMATERIALSOURCE = 146,
D3DRS_AMBIENTMATERIALSOURCE = 147,
D3DRS_EMISSIVEMATERIALSOURCE = 148,
D3DRS_VERTEXBLEND = 151,
D3DRS_CLIPPLANEENABLE = 152,
D3DRS_POINTSIZE = 154,
D3DRS_POINTSIZE_MIN = 155,
D3DRS_POINTSPRITEENABLE = 156,
D3DRS_POINTSCALEENABLE = 157,
D3DRS_POINTSCALE_A = 158,
D3DRS_POINTSCALE_B = 159,
D3DRS_POINTSCALE_C = 160,
D3DRS_MULTISAMPLEANTIALIAS = 161,
D3DRS_MULTISAMPLEMASK = 162,
D3DRS_PATCHEDGESTYLE = 163,
D3DRS_DEBUGMONITORTOKEN = 165,
D3DRS_POINTSIZE_MAX = 166,
D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
D3DRS_COLORWRITEENABLE = 168,
D3DRS_TWEENFACTOR = 170,
D3DRS_BLENDOP = 171,
D3DRS_POSITIONDEGREE = 172,
D3DRS_NORMALDEGREE = 173,
D3DRS_SCISSORTESTENABLE = 174,
D3DRS_SLOPESCALEDEPTHBIAS = 175,
D3DRS_ANTIALIASEDLINEENABLE = 176,
D3DRS_MINTESSELLATIONLEVEL = 178,
D3DRS_MAXTESSELLATIONLEVEL = 179,
D3DRS_ADAPTIVETESS_X = 180,
D3DRS_ADAPTIVETESS_Y = 181,
D3DRS_ADAPTIVETESS_Z = 182,
D3DRS_ADAPTIVETESS_W = 183,
D3DRS_ENABLEADAPTIVETESSELATION = 184,
D3DRS_TWOSIDEDSTENCILMODE = 185,
D3DRS_CCW_STENCILFAIL = 186,
D3DRS_CCW_STENCILZFAIL = 187,
D3DRS_CCW_STENCILPASS = 188,
D3DRS_CCW_STENCILFUNC = 189,
D3DRS_COLORWRITEENABLE1 = 190,
D3DRS_COLORWRITEENABLE2 = 191,
D3DRS_COLORWRITEENABLE3 = 192,
D3DRS_BLENDFACTOR = 193,
D3DRS_SRGBWRITEENABLE = 194,
D3DRS_DEPTHBIAS = 195,
D3DRS_WRAP8 = 198,
D3DRS_WRAP9 = 199,
D3DRS_WRAP10 = 200,
D3DRS_WRAP11 = 201,
D3DRS_WRAP12 = 202,
D3DRS_WRAP13 = 203,
D3DRS_WRAP14 = 204,
D3DRS_WRAP15 = 205,
D3DRS_SEPARATEALPHABLENDENABLE = 206,
D3DRS_SRCBLENDALPHA = 207,
D3DRS_DESTBLENDALPHA = 208,
D3DRS_BLENDOPALPHA = 209,
D3DRS_FORCE_DWORD = 0x7fffffff
} D3DRENDERSTATETYPE;
定数
D3DRS_ZENABLE
D3DZBUFFERTYPE 列挙型の 1 つのメンバとしての深度バッファリング ステート。z バッファリングを有効にするには D3DZB_TRUE、w バッファリングを有効にするには D3DZB_USEW、深度バッファリングを無効にするには D3DZB_FALSE をそれぞれ設定する。D3DPRESENT_PARAMETERS 構造体の EnableAutoDepthStencil メンバに TRUE を設定して深度ステンシルがスワップ チェーンと共に作成されている場合、このレンダリング ステートのデフォルト値は D3DZB_TRUE、そうでない場合は D3DZB_FALSE である。
D3DRS_FILLMODE
D3DFILLMODE 列挙型の 1 つまたは複数のメンバ。デフォルト値は D3DFILL_SOLID である。D3DRS_SHADEMODE
D3DSHADEMODE 列挙型の 1 つまたは複数のメンバ。デフォルト値は D3DSHADE_GOURAUD である。D3DRS_ZWRITEENABLE
アプリケーションによる深度バッファへの書き込みを有効にするには、TRUE を設定する。デフォルト値は TRUE である。アプリケーションはこのメンバを利用することにより、システムが新しい深度値で深度バッファを更新するのを防ぐことができる。FALSE の場合は、レンダリング ステート D3DRS_ZFUNC (深度バッファリングが行われていると仮定) に従って深度比較が実行されるが、深度値はバッファに書き込まれない。D3DRS_ALPHATESTENABLE
ピクセルごとのアルファ テストを有効にするには、TRUE を設定する。テストが成功すると、ピクセルがフレーム バッファによって処理される。失敗すると、そのピクセルのすべてのフレーム バッファ処理はスキップされる。D3DRS_ALPHAFUNC レンダリング ステートにより提供される比較関数を使って、入ってくるアルファ値を基準アルファ値と比較してテストを行う。基準アルファ値は、D3DRS_ALPHAREF の設定値で決まる。詳細については、「アルファ テスティング ステート」を参照すること。
このパラメータのデフォルト値は FALSE である。
D3DRS_LASTPIXEL
デフォルト値は TRUE であり、線で最後のピクセルの描画を有効にする。最後のピクセルを描画しないようにするには、この値を FALSE に設定する。詳細については、「アウトラインおよび塗りつぶしステート」を参照すること。D3DRS_SRCBLEND
D3DBLEND 列挙型のメンバのいずれかである。デフォルト値は D3DBLEND_ONE である。D3DRS_DESTBLEND
D3DBLEND 列挙型のメンバのいずれかである。デフォルト値は D3DBLEND_ZERO である。D3DRS_CULLMODE
背面の三角形をカリングする場合に、その方法を指定する。D3DCULL 列挙型のメンバのいずれかを設定できる。デフォルト値は D3DCULL_CCW である。D3DRS_ZFUNC
D3DCMPFUNC 列挙型のメンバのいずれかである。デフォルト値は D3DCMP_LESSEQUAL である。このメンバは、アプリケーションにカメラからの距離を基準とするピクセルの受け取りや受け取り拒否を許可する。ピクセルの深度値を深度バッファの値と比較する。ピクセルの深度値が比較関数で許可された場合は、ピクセルが書き込まれる。
深度値が深度バッファに書き込まれるのは、レンダリング ステートが TRUE の場合だけである。
この深度テストに失敗した方が、ソフトウェアによるラスタ化や多くのハードウェア アクセラレータの処理は速くなる。これは、ピクセルのレンダリング処理を行わない場合に、テクスチャをフィルタ処理したり乗算したりする必要がなくなるためである。
D3DRS_ALPHAREF
アルファ テストが有効に設定されている場合に、ピクセルをテストするための基準アルファ値を指定する値。これは、DWORD レンダリング ステート値の下位 8 ビットにあたる 8 ビット値である。値は 0x00000000 から 0x000000FF の範囲内である。デフォルト値は 0 である。D3DRS_ALPHAFUNC
D3DCMPFUNC 列挙型のメンバのいずれかである。デフォルト値は、D3DCMP_ALWAYS である。このメンバは、アプリケーションにアルファ値を基準とするピクセルの受け取りや受け取り拒否を許可する。D3DRS_DITHERENABLE
ディザリングを有効にするには、TRUE を設定する。デフォルト値は FALSE である。D3DRS_ALPHABLENDENABLE
アルファ ブレンドによる透明化を有効にするには、TRUE を設定する。デフォルト値は FALSE である。アルファ ブレンディングのタイプは、D3DRS_SRCBLEND と D3DRS_DESTBLEND のレンダリング ステートによって決まる。
D3DRS_FOGENABLE
フォグ ブレンディングを有効にするには、TRUE を設定する。デフォルト値は FALSE である。フォグ ブレンディングの使い方の詳細については、「フォグ」を参照すること。D3DRS_SPECULARENABLE
スペキュラ ハイライトを有効にするには、TRUE を設定する。デフォルト値は FALSE である。スペキュラ ハイライトは、光の当たっているオブジェクトの各頂点がそのオブジェクトの原点にあるかのように算出される。これによって、オブジェクトが原点の周囲でモデル化され、光源とオブジェクト間の距離が比較的大きい場合に限り、結果を予測することができる。それ以外の場合、結果は不定である。
このメンバに TRUE を設定すると、テクスチャ カスケード後、アルファ ブレンディング前に、ベース カラーにスペキュラ色が追加される。
D3DRS_FOGCOLOR
D3DCOLOR 型の値。デフォルト値は 0 である。フォグ カラーの詳細については、「フォグ色」を参照すること。D3DRS_FOGTABLEMODE
ピクセル フォグに使われるフォグ式。D3DFOGMODE 列挙型のメンバのいずれかを設定する。デフォルト値は D3DFOG_NONE である。ピクセル フォグの詳細については、「ピクセル フォグ」を参照すること。D3DRS_FOGSTART
線形フォグ モードで、ピクセルまたは頂点フォグ エフェクトが開始する深度。デフォルト値は 0.0f である。深度は、頂点フォグの場合はワールド空間で、ピクセル フォグの場合はデバイス空間 [0.0, 1.0] またはワールド空間のいずれかで指定する。ピクセル フォグでは、フォグ計算に z を使う場合、これらの値はデバイス空間にあり、視点との相対フォグ (w フォグ) を使う場合はワールド空間にある。詳細については、「フォグ パラメータ」および「視点からの相対深度 対 Z ベースの深度」を参照すること。このレンダリング ステートの値は浮動小数点値である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。
pDevice9->SetRenderState(D3DRS_FOGSTART, *((DWORD*) (&fFogStart)));
D3DRS_FOGEND
線形フォグ モードで、ピクセルまたは頂点フォグ エフェクトが終了する深度。デフォルト値は 1.0f である。深度は、頂点フォグの場合はワールド空間で、ピクセル フォグの場合はデバイス空間 [0.0, 1.0] またはワールド空間のいずれかで指定する。ピクセル フォグでは、フォグ計算に z を使う場合、これらの値はデバイス空間にあり、視点との相対フォグ (w フォグ) を使う場合はワールド空間にある。詳細については、「フォグ パラメータ」および「視点からの相対深度 対 Z ベースの深度」を参照すること。このレンダリング ステートの値は浮動小数点値である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。
pDevice9->SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd)));
D3DRS_FOGDENSITY
指数フォグ モード (D3DFOG_EXP および D3DFOG_EXP2) で使うピクセルまたは頂点フォグのフォグ密度。有効な密度の値は 0.0 から 1.0 の範囲内である。デフォルト値は 1.0 である。詳細については、「フォグ パラメータ」を参照すること。このレンダリング ステートの値は浮動小数点値である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。
pDevice9->SetRenderState(D3DRS_FOGDENSITY, *((DWORD*) (&fFogDensity)));
D3DRS_RANGEFOGENABLE
範囲ベースの頂点フォグを有効にするには、TRUE を設定する。デフォルト値は FALSE で、システムは深度ベースのフォグを使う。範囲ベースのフォグでは、シーンにおけるオブジェクトの深度 (z 座標) ではなく、ビューアからのオブジェクトの距離でフォグ エフェクトを計算する。範囲ベースのフォグでは、通常のすべてのフォグ メソッドが機能するが、深度ではなく範囲を使って計算を行う点だけが異なる。範囲はフォグ計算に使う適切な要素だが、範囲は計算に時間がかかり、深度は通常計算済みなので、代わりに深度が広く使われる。深度を使ってフォグを計算すると、周辺オブジェクトのフォグ エフェクトが視点の移動と共に変化するという好ましくない影響が出る。この場合、深度は変化するが範囲は一定のままである。
現在のところ、ピクセル単位の範囲ベースのフォグをサポートするハードウェアは存在しないため、範囲補正は頂点フォグでのみ行われる。
詳細については、「頂点フォグ」を参照すること。
D3DRS_STENCILENABLE
ステンシル処理を有効にするには TRUE を設定し、ステンシル処理を無効にするには FALSE を設定する。デフォルト値は FALSE である。詳細については、「ステンシル バッファ テクニック」を参照すること。
D3DRS_STENCILFAIL
ステンシル テストに失敗したときに実行するステンシル処理。これには D3DSTENCILCAPS のいずれかの定数を設定できる。デフォルト値は D3DSTENCILOP_KEEP である。詳細については、「ステンシル バッファ テクニック」を参照すること。
D3DRS_STENCILZFAIL
ステンシル テストにパスし、深度テスト (Z テスト) に失敗した場合に実行するステンシル処理。これには D3DSTENCILCAPS のいずれかの定数を設定できる。デフォルト値は D3DSTENCILOP_KEEP である。D3DRS_STENCILPASS
ステンシル テストおよび深度 (Z) テストの両方にパスした場合に実行するステンシル処理。これには D3DSTENCILCAPS のいずれかの定数を設定できる。デフォルト値は D3DSTENCILOP_KEEP である。D3DRS_STENCILFUNC
ステンシル テストのための比較関数。これには D3DCMPFUNC 列挙型のメンバのいずれかを設定できる。デフォルト値は、D3DCMP_ALWAYS である。比較関数は、ステンシル バッファの要素を基準値と比較するために使われる。この比較は、基準値のビット、およびステンシル マスク (D3DRS_STENCILMASK レンダリング ステートにより設定) に設定されたステンシル バッファ要素にのみ適用される。TRUE の場合は、ステンシル テストにパスする。
D3DRS_STENCILREF
ステンシル テストのための int 基準値。デフォルト値は 0 である。D3DRS_STENCILMASK
基準値および各ステンシル バッファ要素に適用し、ステンシル テストのための有効ビットを決定するマスク。デフォルト マスクは 0xFFFFFFFF である。D3DRS_STENCILWRITEMASK
ステンシル バッファに書き込む値に適用する書き込みマスク。デフォルト マスクは 0xFFFFFFFF である。D3DRS_TEXTUREFACTOR
D3DTA_TFACTOR テクスチャ ブレンディング引数または D3DTOP_BLENDFACTORALPHA テクスチャ ブレンディング処理によるマルチテクスチャ ブレンディングで使われる色。関連する値は D3DCOLOR 変数である。デフォルト値は不透明の白 (0xFFFFFFFF) である。D3DRS_WRAP0
複数のテクスチャ座標セットに対するテクスチャ ラッピング動作。このレンダリング ステートの有効値として、D3DWRAPCOORD_0 (または D3DWRAP_U)、D3DWRAPCOORD_1 (または D3DWRAP_V)、D3DWRAPCOORD_2 (または D3DWRAP_W)、および D3DWRAPCOORD_3 の各フラグを組み合わせることができる。これらの値を設定すると、指定されたテクスチャに対して 1、2、3、および 4 次元方向 (s、t、r、および q 方向と呼ばれる場合もある) のラッピングが実行される。このレンダリング ステートのデフォルト値は 0 である (全方向のラッピングが無効)。D3DRS_WRAP1
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP2
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP3
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP4
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP5
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP6
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP7
「D3DRS_WRAP0」を参照すること。D3DRS_CLIPPING
Microsoft® Direct3D® によるプリミティブのクリッピングを有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は TRUE である。D3DRS_LIGHTING
Direct3D のライティングを有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は TRUE である。頂点法線を含む頂点のみ正しくライトが当てられ、法線を含まない頂点ではすべてのライティング計算で 0 の内積が使われる。D3DRS_AMBIENT
アンビエント ライトの色。この値は D3DCOLOR 型である。デフォルト値は 0 である。D3DRS_FOGVERTEXMODE
頂点フォグで使われるフォグ式。D3DFOGMODE 列挙型のメンバのいずれかを設定する。デフォルト値は D3DFOG_NONE である。D3DRS_COLORVERTEX
頂点単位の色を有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は TRUE である。頂点単位の色を有効にすると、各頂点に定義された色をライティング計算で使うことができる。詳細については、以下のレンダリング ステートを参照すること。
D3DRS_LOCALVIEWER
カメラとの相対角度に依存したスペキュラ ハイライトを有効にするには TRUE を設定し、正スペキュラ ハイライトを使うには FALSE を設定する。デフォルト値は TRUE である。正射影を使うアプリケーションでは FALSE を設定すること。D3DRS_NORMALIZENORMALS
頂点法線の自動正規化を有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は FALSE である。この機能を有効にすると、頂点がカメラ空間にトランスフォームされた後で頂点法線が正規化されるが、計算に時間がかかる。D3DRS_DIFFUSEMATERIALSOURCE
ライティング計算に使われるディフューズ色のソース。有効な値は、D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_COLOR1 である。このレンダリング ステートの値が使われるのは、D3DRS_COLORVERTEX レンダリング ステートが TRUE に設定されている場合だけである。D3DRS_SPECULARMATERIALSOURCE
ライティング計算に使われるスペキュラ色のソース。有効な値は、D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_COLOR2 である。D3DRS_AMBIENTMATERIALSOURCE
ライティング計算に使われるアンビエント色のソース。有効な値は、D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_MATERIAL である。D3DRS_EMISSIVEMATERIALSOURCE
ライティング計算に使われるエミッション色のソース。有効な値は、D3DMATERIALCOLORSOURCE 列挙型のメンバである。デフォルト値は D3DMCS_MATERIAL である。D3DRS_VERTEXBLEND
ジオメトリがある場合、ジオメトリ ブレンディングを実行するために使う行列の個数。有効な値は、D3DVERTEXBLENDFLAGS 列挙型のメンバである。デフォルト値は D3DVBF_DISABLE である。D3DRS_CLIPPLANEENABLE
ユーザー定義のクリップ面を有効または無効にする。有効な値は、各ビットのステータス (設定の有無) によって対応するユーザー定義クリップ面をアクティブにするステートを切り替える、任意の DWORD である。最下位ビット (ビット 0) はインデックス 0 の最初のクリップ面を制御し、後続ビットはそれより上位のインデックスのクリップ面をアクティブにすることを制御する。ビットが設定されている場合、シーンのレンダリング中に適切なクリップ面が適用される。デフォルト値は 0 である。クリップ面を簡単に有効にできるように D3DCLIPPLANEn マクロが定義されている。
D3DRS_POINTSIZE
各頂点に対してポイント サイズが指定されていない場合に、ポイント サイズ計算で使うサイズを指定する float 値。頂点がポイント サイズを含んでいる場合、この値は使われない。この値は、D3DRS_POINTSCALEENABLE が FALSE の場合はスクリーン空間単位で指定する。それ以外の場合は、ワールド空間単位で指定する。デフォルト値は 1.0f である。この値の範囲は、0.0f 以上である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&PointSize));
D3DRS_POINTSIZE_MIN
ポイント プリミティブの最小サイズを指定する float 値。レンダリングの間、ポイント プリミティブはこのサイズに固定される。1.0 より小さい値を設定すると、ポイントにピクセルの中心が含まれずにアンチエイリアシングが無効になっている場合はポイントが表示されなくなり、アンチエイリアシングが有効になっている場合は低い輝度でレンダリングされる。デフォルト値は 1.0f である。この値の範囲は、0.0f 以上である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&PointSizeMin));
D3DRS_POINTSPRITEENABLE
BOOL 値。TRUE を設定すると、テクスチャ全体が各ポイントにマッピングされるように、ポイント プリミティブのテクスチャ座標が設定される。FALSE を設定すると、頂点のテクスチャ座標がポイント全体に対して使われる。デフォルト値は FALSE である。D3DRS_POINTSCALEENABLE に FALSE (デフォルト値) を設定し、D3DRS_POINTSIZE に 1.0 (デフォルト値) を設定することで、Microsoft DirectX® 7.0 スタイルの 1 ピクセルのポイントを実現できる。D3DRS_POINTSCALEENABLE
ポイント プリミティブに対するサイズの計算を制御する BOOL 値。TRUE を設定すると、ポイント サイズをカメラ空間の値として解釈し、距離関数および視錐台によってビューポートの y 軸のスケールに合わせて調整し、最終的なスクリーン空間のポイント サイズを計算する。FALSE を設定すると、ポイント サイズはスクリーン空間の値と解釈されて、そのまま使われる。デフォルト値は FALSE である。D3DRS_POINTSCALE_A
ポイント プリミティブに対する距離ベースのサイズの減衰を制御する float 値。D3DRS_POINTSCALEENABLE が TRUE の場合にのみ有効である。デフォルト値は 1.0f である。この値の範囲は、0.0f 以上である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_POINTSCALE_A, *((DWORD*)&PointScaleA));
D3DRS_POINTSCALE_B
ポイント プリミティブに対する距離ベースのサイズの減衰を制御する float 値。D3DRS_POINTSCALEENABLE が TRUE の場合にのみ有効である。デフォルト値は 0.0f である。この値の範囲は、0.0f 以上である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_POINTSCALE_B, *((DWORD*)&PointScaleB));
D3DRS_POINTSCALE_C
ポイント プリミティブに対する距離ベースのサイズの減衰を制御する float 値。D3DRS_POINTSCALEENABLE が TRUE の場合にのみ有効である。デフォルト値は 0.0f である。この値の範囲は、0.0f 以上である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_POINTSCALE_C, *((DWORD*)&PointScaleC));
D3DRS_MULTISAMPLEANTIALIAS
マルチサンプル レンダリングのターゲット バッファを使うときの、個々のサンプルの計算方法を決定する BOOL 値。TRUE を設定すると、複数サンプルのそれぞれについて異なるサンプリング位置でサンプリングすることでフルシーン アンチエイリアシングを実行するように、複数のサンプルが計算される。FALSE の場合は、複数のサンプルはすべて同じサンプリング値 (ピクセルの中心でサンプリングされた値) で記述されて、マルチサンプル バッファに対する非アンチエイリアシング レンダリングが可能になる。シングル サンプル バッファへのレンダリング時、このレンダリング ステートはエフェクトを持たない。デフォルト値は TRUE である。D3DRS_MULTISAMPLEMASK
最下位ビット (LSB) を先頭とするこのマスクの各ビットは、マルチサンプル レンダリング ターゲットの 1 つのサンプルに対する変更を制御する。したがって、8 サンプルのレンダリング ターゲットの場合は、8 つのサンプルのそれぞれに対する 8 つの書き込み許可情報が、下位バイトに格納されている。シングル サンプル バッファへのレンダリング時、このレンダリング ステートはエフェクトを持たない。デフォルト値は 0xFFFFFFFF である。このレンダリング ステートを使うと、マルチサンプル バッファを蓄積バッファとして使い、各パスがサンプルのサブセットを更新するようなジオメトリのマルチパス レンダリングを行うことができる。
このレンダリング ステートは、D3DCAPS9 構造体の D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE メンバが有効になっている場合はサポートされない。
マルチサンプル数が n、有効サンプル数が k である場合、イメージは k/n の輝度でレンダリングされる。各ピクセルの各成分 RGB は、k/n を係数に持つ。
D3DRS_PATCHEDGESTYLE
パッチ エッジが浮動小数点数スタイルのテセレーションを使うかどうかを設定する。設定可能な値は、D3DPATCHEDGESTYLE 列挙型で定義される。デフォルト値は D3DPATCHEDGE_DISCRETE である。D3DRS_DEBUGMONITORTOKEN
モニタをデバッグする場合にのみ設定する。設定可能な値は、D3DDEBUGMONITORTOKENS 列挙型で定義される。D3DRS_DEBUGMONITORTOKEN が設定されている場合、この呼び出しはデバッグ モニタへのトークンの受け渡しとして処理されることに注意すること。たとえば、D3DDMT_ENABLE または D3DDMT_DISABLE を D3DRS_DEBUGMONITORTOKEN に渡した後、他のトークンの値が渡された場合、デバッグ モニタのステート (有効または無効) は変化しない。このステートは、デバッグ ビルドでのみ有用である。デバッグ モニタのデフォルトは D3DDMT_ENABLE である。
D3DRS_POINTSIZE_MAX
ポイント スプライトが制限される最大サイズを指定する float 値。値は、D3DCAPS9 の MaxPointSize メンバ以下で、D3DRS_POINTSIZE_MIN 以上でなければならない。デフォルト値は 64.0f である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_PONTSIZE_MAX, *((DWORD*)&PointSizeMax));
D3DRS_INDEXEDVERTEXBLENDENABLE
インデックス付きの頂点ブレンディングを有効または無効にする BOOL 値。デフォルト値は FALSE である。TRUE を設定すると、インデックス付き頂点ブレンディングが有効になる。FALSE を設定すると、インデックス付き頂点ブレンディングは無効になる。このレンダリング ステートが有効な場合は、頂点ごとにパックされた DWORD で行列インデックスを渡さなければならない。このレンダリング ステートを無効にし、D3DRS_VERTEXBLEND ステートを使って頂点ブレンディングを有効にすることは、すべての頂点について行列インデックス 0、1、2、3 を指定することと同じである。D3DRS_COLORWRITEENABLE
レンダリング ターゲットのカラー バッファに対するチャンネルごとの書き込みを有効にする UINT 値。ビットを設定すると、3D レンダリングの間にカラー チャンネルが更新される。ビットをクリアすると、カラー チャンネルは更新されない。この機能は、 デバイスに対する D3DCAPS9 構造体の PrimitiveMiscCaps メンバで D3DPMISCCAPS_COLORWRITEENABLE 能力ビットが設定されている場合に利用できる。このレンダリング ステートは、クリア処理には影響を与えない。デフォルト値は 0x0000000F である。このレンダリング ステートに対する有効な値は、D3DCOLORWRITEENABLE_ALPHA、D3DCOLORWRITEENABLE_BLUE、D3DCOLORWRITEENABLE_GREEN、および D3DCOLORWRITEENABLE_RED の各フラグの任意の組み合わせである。
D3DRS_TWEENFACTOR
トゥイーン係数を制御する float 値。デフォルト値は 0.0f である。IDirect3DDevice9::SetRenderState メソッドは DWORD 値を使うため、次のコードに示すように、アプリケーションでは値を格納した変数をキャストしなければならない。pDevice9->SetRenderState(D3DRS_TWEENFACTOR, *((DWORD*)&TweenFactor));
D3DRS_BLENDOP
アルファ ブレンディング レンダリング ステートの D3DRS_ALPHABLENDENABLE が TRUE に設定されている場合に適用する算術演算の選択に使われる値。有効な値は、D3DBLENDOP 列挙型で定義される。デフォルト値は D3DBLENDOP_ADD である。D3DPMISCCAPS_BLENDOP デバイス能力がサポートされていない場合は、D3DBLENDOP_ADD が実行される。
D3DRS_POSITIONDEGREE
N パッチ位置補間次数。この値には D3DDEGREE_CUBIC (デフォルト) または D3DDEGREE_LINEAR を設定できる。詳細については、「D3DDEGREETYPE」を参照すること。D3DRS_NORMALDEGREE
N パッチ法線補間次数。この値には D3DDEGREE_LINEAR (デフォルト) または D3DDEGREE_QUADRATIC を設定できる。詳細については、「D3DDEGREETYPE」を参照すること。D3DRS_SCISSORTESTENABLE
シザー テストを有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は FALSE である。D3DRS_SLOPESCALEDEPTHBIAS
z ファイティングを減らすために、同一平面上のプリミティブにどれだけバイアスを適用するかを決定するのに使う。デフォルト値は 0 である。
bias = (max * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS
ここで、max はレンダリングする三角形の最大深度勾配。
D3DRS_ANTIALIASEDLINEENABLE
線のアンチエイリアシングを有効にする場合は TRUE、無効にする場合は FALSE を設定する。デフォルト値は FALSE である。マルチサンプル レンダリング ターゲットをレンダリングする場合、D3DRS_ANTIALIASEDLINEENABLE は無視され、すべての線がぎざぎざにレンダリングされる。マルチサンプル レンダリング ターゲットでラインのアンチエイリアシングを有効にするには、ID3DXLine を使う。
D3DRS_MINTESSELLATIONLEVEL
テセレーションの最小レベル。デフォルト値は 1.0f である。「テセレーション」を参照すること。D3DRS_MAXTESSELLATIONLEVEL
テセレーションの最大レベル。デフォルト値は 1.0f である。「テセレーション」を参照すること。D3DRS_ADAPTIVETESS_X
適応型テセレーションの量 (x 軸方向)。デフォルト値は 0.0f である。「テセレーション」を参照すること。D3DRS_ADAPTIVETESS_Y
適応型テセレーションの量 (y 軸方向)。デフォルト値は 0.0f である。「テセレーション」を参照すること。D3DRS_ADAPTIVETESS_Z
適応型テセレーションの量 (z 軸方向)。デフォルト値は 1.0f である。「テセレーション」を参照すること。D3DRS_ADAPTIVETESS_W
適応型テセレーションの量 (w 軸方向)。デフォルト値は 0.0f である。「テセレーション」を参照すること。D3DRS_ENABLEADAPTIVETESSELATION
適応型テセレーションを有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は FALSE である。「テセレーション」を参照すること。D3DRS_TWOSIDEDSTENCILMODE
2 面のステンシルを有効にするには TRUE、無効にするには FALSE を設定する。デフォルト値は FALSE である。アプリケーションでは、2 面のステンシル モードを有効にするには D3DRS_CULLMODE を D3DCULL_NONE に設定する必要がある。三角形のワインディング順序が時計回りである場合は、D3DRS_STENCIL* の操作が使われる。ワインディング順序が反時計周りである場合は、D3DRS_CCW_STENCIL* の操作が使われる。2 面のステンシルがサポートされているかどうかを確認するには、D3DSTENCILCAPS_TWOSIDED の D3DCAPS9 の StencilCaps メンバを調べる。「D3DSTENCILCAPS」も参照すること。
D3DRS_CCW_STENCILFAIL
反時計回りのステンシル テストに失敗したときに実行するステンシル処理。デフォルト値は 0x00000001 である。D3DRS_CCW_STENCILZFAIL
反時計回りのステンシル テストにパスし、Z テストに失敗した場合に実行するステンシル処理。デフォルト値は 0x00000001 である。D3DRS_CCW_STENCILPASS
反時計回りのステンシル テストおよび Z テストの両方にパスした場合に実行するステンシル処理。デフォルト値は 0x00000001 である。D3DRS_CCW_STENCILFUNC
比較関数。反時計回りのステンシル テストにパスするのは、((ref & mask) ステンシル関数 (stencil & mask)) が TRUE の場合である。デフォルト値は 0x00000008 である。D3DRS_COLORWRITEENABLE1
デバイスに対する追加の ColorWriteEnable の値。「D3DRS_COLORWRITEENABLE」を参照すること。この機能は、 デバイスに対する D3DCAPS9 構造体の PrimitiveMiscCaps メンバで D3DPMISCCAPS_INDEPENDENTWRITEMASKS 能力ビットが設定されている場合に利用できる。デフォルト値は 0x0000000f である。D3DRS_COLORWRITEENABLE2
デバイスに対する追加の ColorWriteEnable の値。「D3DRS_COLORWRITEENABLE」を参照すること。この機能は、 デバイスに対する D3DCAPS9 構造体の PrimitiveMiscCaps メンバで D3DPMISCCAPS_INDEPENDENTWRITEMASKS 能力ビットが設定されている場合に利用できる。デフォルト値は 0x0000000f である。D3DRS_COLORWRITEENABLE3
デバイスに対する追加の ColorWriteEnable の値。「D3DRS_COLORWRITEENABLE」を参照すること。この機能は、 デバイスに対する D3DCAPS9 構造体の PrimitiveMiscCaps メンバで D3DPMISCCAPS_INDEPENDENTWRITEMASKS 能力ビットが設定されている場合に利用できる。デフォルト値は 0x0000000f である。D3DRS_BLENDFACTOR
アルファ ブレンディング処理の間に定数ブレンディング係数に使う D3DCOLOR。この機能は、D3DCAPS9 の SrcBlendCaps メンバ、または D3DCAPS9 の DestBlendCaps メンバで D3DPBLENDCAPS_BLENDFACTOR 能力フラグが設定されている場合に利用できる。「D3DRENDERSTATETYPE」を参照すること。デフォルト値は 0xffffffff である。D3DRS_SRGBWRITEENABLE
レンダリング ターゲットへの書き込みで、sRGB へのガンマ補正を有効にする。フォーマットでは、D3DUSAGE_SRGBWRITE を公開する必要がある。デフォルト値は 0 である。D3DRS_DEPTHBIAS
深度値の比較に使う浮動小数点値。「深度バイアス」を参照すること。デフォルト値は 0 である。D3DRS_WRAP8
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP9
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP10
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP11
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP12
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP13
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP14
「D3DRS_WRAP0」を参照すること。D3DRS_WRAP15
「D3DRS_WRAP0」を参照すること。D3DRS_SEPARATEALPHABLENDENABLE
TRUE を設定すると、アルファ チャンネルに対する個別のブレンディング モードが有効になる。デフォルト値は FALSE である。FALSE を設定すると、アルファに適用するレンダリング ターゲットのブレンディング係数とブレンディング処理は、強制的に、色に対して定義したものと同じものになる。D3DPMISCCAPS_SEPARATEALPHABLEND 能力を設定しない実装では、このモードが実質的に FALSE に固定される。「D3DPMISCCAPS」を参照すること。
個別のアルファ ブレンディングのタイプは、D3DRS_SRCBLENDALPHA と D3DRS_DESTBLENDALPHA のレンダリング ステートによって決まる。
D3DRS_SRCBLENDALPHA
D3DBLEND 列挙型のメンバのいずれかである。D3DRS_SEPARATEALPHAENABLE が TRUE でない場合、この値は無視される。デフォルト値は D3DBLEND_ONE である。D3DRS_DESTBLENDALPHA
D3DBLEND 列挙型のメンバのいずれかである。D3DRS_SEPARATEALPHAENABLE が TRUE でない場合、この値は無視される。デフォルト値は D3DBLEND_ZERO である。D3DRS_BLENDOPALPHA
レンダリング ステートの D3DRS_ALPHABLENDENABLE が TRUE に設定されている場合に、個別のアルファ ブレンディングに適用する算術演算の選択に使う値。有効な値は、D3DBLENDOP 列挙型で定義される。デフォルト値は D3DBLENDOP_ADD である。
D3DPMISCCAPS_BLENDOP デバイス能力がサポートされていない場合は、D3DBLENDOP_ADD が実行される。「D3DPMISCCAPS」を参照すること。
D3DRS_FORCE_DWORD
この列挙型を強制的に 32 ビット サイズにコンパイルする。この値は使われていない。
注意
Direct3D は、アプリケーションでの便宜を考慮して、(D3DRS_WRAP n ステート値の 1 つを明示的に使う代わりに) 定数 D3DRENDERSTATE_WRAPBIAS を定義し、テクスチャ座標セットのゼロから始まる整数値に基づいて、テクスチャ ラッピングを有効にしたり、無効にしたりする。次の例のように、D3DRENDERSTATE_WRAPBIAS 値をテクスチャ座標セットのゼロから始まるインデックスに加算して、そのインデックスに対応する D3DRS_WRAP n 値を計算する。
// Enable U/V wrapping for textures that use the texture
// coordinate set at the index within the dwIndex variable.
HRESULT hr = pd3dDevice->SetRenderState(
dwIndex + D3DRENDERSTATE_WRAPBIAS,
D3DWRAPCOORD_0 | D3DWRAPCOORD_1);
// If dwIndex is 3, the value that results from
// the addition equals D3DRS_WRAP3 (131).
列挙型の情報
ヘッダー | d3d9types.h |
最低限のオペレーティング システム | Windows 98 |
参照
IDirect3DDevice9::GetRenderState、IDirect3DDevice9::SetRenderState