D3DRENDERSTATETYPE 列挙
レンダリング状態は、あらゆる種類の頂点およびピクセル処理の設定状態を定義します。 一部のレンダリング状態は頂点処理を設定し、一部はピクセル処理を設定します ( 「レンダリング状態 (Direct3D 9)」を参照)。 レンダリング状態は、ステートブロックを使用して保存および復元できます ( 「State Blocks Save and Restore State (Direct3D 9)」を参照)。
構文
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_ENABLEADAPTIVETESSELLATION = 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, *LPD3DRENDERSTATETYPE;
定数
-
D3DRS_ZENABLE
-
D3DZBUFFERTYPE 列挙型の 1 つのメンバーとしての深度バッファリング状態。 この状態を D3DZB_TRUE に設定して z バッファリングを有効にするか、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に設定された値によって決まります。 詳細については、「 Alpha Testing State (Direct3D 9)」を参照してください。
このパラメーターの既定値は FALSE です。
-
D3DRS_LASTPIXEL
-
既定値は TRUE で、線の最後のピクセルを描画できます。 最後のピクセルが描画されないようにするには、この値を FALSE に設定 します。 詳細については、「 アウトラインと塗りつぶしの状態 (Direct3D 9)」を参照してください。
-
D3DRS_SRCBLEND
-
D3DBLEND 列挙型の 1 つのメンバー。 既定値は D3DBLEND_ONE です。
-
D3DRS_DESTBLEND
-
D3DBLEND 列挙型の 1 つのメンバー。 既定値は D3DBLEND_ZERO です。
-
D3DRS_CULLMODE
-
逆向きの三角形をカリングする方法を指定します (まったく場合)。 これは、 D3DCULL 列挙型の 1 つのメンバーに設定できます。 既定値は D3DCULL_CCW です。
-
D3DRS_ZFUNC
-
D3DCMPFUNC 列挙型の 1 つのメンバー。 既定値は D3DCMP_LESSEQUAL です。 このメンバーを使用すると、アプリケーションは、カメラからの距離に基づいてピクセルを受け入れるか拒否できます。
ピクセルの深度値は、深度バッファー値と比較されます。 ピクセルの深度値が比較関数を通過すると、ピクセルが書き込まれます。
深度値は、レンダリング状態が TRUE の場合にのみ深度バッファーに書き込まれます。
深度テストが失敗した場合、ピクセルがレンダリングされない場合にテクスチャをフィルター処理して調整する必要がないため、ソフトウェア ラスタライザーと多くのハードウェア アクセラレータは高速に動作します。
-
D3DRS_ALPHAREF
-
アルファ テストが有効になっているときにピクセルがテストされる参照アルファ値を指定する値。 これは、DWORD レンダリング状態値の下位 8 ビットに配置された 8 ビット値です。 値の範囲は、0x00000000から0x000000FFまでです。 既定値は 0 です。
-
D3DRS_ALPHAFUNC
-
D3DCMPFUNC 列挙型の 1 つのメンバー。 既定値は 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 です。 霧の色の詳細については、「 霧の色 (Direct3D 9)」を参照してください。
-
D3DRS_FOGTABLEMODE
-
ピクセル の霧に使用する霧の数式。 D3DFOGMODE 列挙型のいずれかのメンバーに設定します。 既定値はD3DFOG_NONEです。 ピクセル 霧の詳細については、「 ピクセル 霧 (Direct3D 9)」を参照してください。
-
D3DRS_FOGSTART
-
線形霧モードでピクセルまたは頂点の霧効果が開始される深さ。 既定値は 0.0f です。 深度は、頂点霧のワールド空間と、ピクセル 霧のデバイス空間 [0.0, 1.0] またはワールド空間で指定されます。 ピクセル 霧の場合、システムが視線相対霧 (w-fog) を使用している場合に、システムが霧の計算に z を使用し、ワールド空間を使用する場合、これらの値はデバイス空間にあります。 詳細については、「 霧パラメーター (Direct3D 9)」 および「 視線相対と Z ベースの深さ」を参照してください。
このレンダリング状態の値は浮動小数点値です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、アプリケーションは値を含む変数をキャストする必要があります。
pDevice9->SetRenderState(D3DRS_FOGSTART, *((DWORD*) (&fFogStart)));
-
D3DRS_FOGEND
-
線形霧モードでピクセルまたは頂点の霧効果が終了する深さ。 既定値は 1.0f です。 深度は、頂点フォグのワールド空間と、ピクセル フォグのデバイス空間 [0.0,1.0] またはワールド空間で指定されます。 ピクセル フォグの場合、これらの値は、システムが霧の計算に z を使用する場合はデバイス空間に、システムが視線相対霧 (w-fog) を使用している場合はワールド空間にあります。 詳細については、「 Fog Parameters (Direct3D 9)」 および「 Eye-Relative vs. Z-depth」を参照してください。
このレンダリング状態の値は浮動小数点値です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd)));
-
D3DRS_FOGDENSITY
-
指数霧モード (D3DFOG_EXPとD3DFOG_EXP2) で使用されるピクセルまたは頂点の霧の霧密度。 有効な密度値の範囲は 0.0 ~ 1.0 です。 既定値は 1.0 です。 詳細については、「 Fog パラメーター (Direct3D 9)」を参照してください。
このレンダリング状態の値は浮動小数点値です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_FOGDENSITY, *((DWORD*) (&fFogDensity)));
-
D3DRS_RANGEFOGENABLE
-
範囲 ベースの頂点霧を有効にする場合は TRUE。 既定値は FALSE です。この場合、システムでは深度ベースの霧が使用されます。 範囲ベースの霧では、ビューアーからのオブジェクトの距離は、シーン内のオブジェクトの深さ (つまり z 座標) ではなく、霧の効果を計算するために使用されます。 範囲ベースの霧では、計算で深度ではなく範囲を使用する点を除き、すべての霧メソッドは通常どおりに動作します。
範囲は霧の計算に使用する正しい要素ですが、深度は一般的に使用されます。範囲の計算には時間がかかり、深度は一般に既に使用可能であるためです。 深度を使用して霧を計算すると、視聴者の目が動くにつれて周辺オブジェクトの霧が変化するという望ましくない効果があります。この場合、深度は変化し、範囲は一定のままです。
現在、ピクセル単位の範囲ベースの霧をサポートしているハードウェアはないため、範囲修正は頂点霧に対してのみ提供されます。
詳細については、「 Vertex Fog (Direct3D 9)」を参照してください。
-
D3DRS_STENCILENABLE
-
ステンシルを有効にする場合は TRUE、ステンシルを無効にする場合は FALSE。 既定値は FALSE です。 詳細については、「 ステンシル バッファー手法 (Direct3D 9)」を参照してください。
-
D3DRS_STENCILFAIL
-
ステンシル テストが失敗した場合に実行するステンシル操作。 値は D3DSTENCILOP 列挙型の値です。 既定値は D3DSTENCILOP_KEEP です。
-
D3DRS_STENCILZFAIL
-
ステンシル テストに合格し、深度テスト (z テスト) が失敗した場合に実行するステンシル操作。 値は D3DSTENCILOP 列挙型の値です。 既定値は D3DSTENCILOP_KEEP です。
-
D3DRS_STENCILPASS
-
ステンシルと深度 (z) の両方のテストに合格した場合に実行するステンシル操作。 値は D3DSTENCILOP 列挙型の値です。 既定値は 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
-
Direct3D によるプリミティブクリッピングを有効にする場合は TRUE、無効にするには FALSE 。 既定値は TRUE です。
-
D3DRS_LIGHTING
-
Direct3D 照明を有効にする場合は TRUE、 無効にする場合は FALSE 。 既定値は TRUE です。 頂点法線を含む頂点のみが適切に点灯します。法線を含まない頂点は、すべての照明計算で 0 のドット積を使用します。
-
D3DRS_AMBIENT
-
アンビエント ライトの色。 この値は D3DCOLOR 型です。 既定値は 0 です。
-
D3DRS_FOGVERTEXMODE
-
頂点の霧に使用する霧の数式。 D3DFOGMODE 列挙型の 1 つのメンバーに設定します。 既定値は D3DFOG_NONE です。
-
D3DRS_COLORVERTEX
-
頂点 ごとの色を有効にする場合は TRUE、無効にするには FALSE を 指定します。 既定値は TRUE です。 頂点ごとの色を有効にすると、個々の頂点に定義された色を照明計算に含めることができます。
詳細については、次のレンダリング状態を参照してください。
- D3DRS_DIFFUSEMATERIALSOURCE
- D3DRS_SPECULARMATERIALSOURCE
- D3DRS_AMBIENTMATERIALSOURCE
- D3DRS_EMISSIVEMATERIALSOURCE
-
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
-
頂点ごとにポイント サイズが指定されていない場合に、ポイント サイズの計算に使用するサイズを指定する浮動小数点値。 頂点にポイント サイズが含まれている場合、この値は使用されません。 D3DRS_POINTSCALEENABLEが FALSE の場合、この値は画面空間単位になります。それ以外の場合、この値はワールド空間単位です。 既定値は、ドライバーが返す値です。 ドライバーが 0 または 1 を返す場合、既定値は 64 です。これにより、ソフトウェア ポイント サイズエミュレーションが可能になります。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、アプリケーションは値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&pointSize));
-
D3DRS_POINTSIZE_MIN
-
ポイント プリミティブの最小サイズを指定する浮動小数点値。 ポイント プリミティブは、レンダリング中にこのサイズにクランプされます。 これを 1.0 より小さい値に設定すると、ポイントがピクセル中心をカバーせず、アンチエイリアシングが無効になっているか、アンチエイリアシングが有効になっている場合に強度が低下してレンダリングされるときに、ポイントがドロップします。 既定値は 1.0f です。 この値の範囲が 0.0f 以上です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、アプリケーションは値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&pointSizeMin));
-
D3DRS_POINTSPRITEENABLE
-
bool 値。 TRUE の場合、ポイント プリミティブのテクスチャ座標が設定され、各ポイントに完全なテクスチャがマップされます。 FALSE の場合、頂点テクスチャ座標がポイント全体に使用されます。 既定値は FALSE です。 DirectX 7 スタイルの単一ピクセル ポイントを実現するには、D3DRS_POINTSCALEENABLE を FALSE に、D3DRS_POINTSIZEを 1.0 (既定値) に設定します。
-
D3DRS_POINTSCALEENABLE
-
ポイント プリミティブのサイズの計算を制御する bool 値。 TRUE の場合、ポイント サイズはカメラ空間の値として解釈され、最終的な画面空間ポイント サイズを計算するために、距離関数と視錐台からビューポート y 軸へのスケーリングによってスケーリングされます。 FALSE の場合、ポイント サイズは画面スペースとして解釈され、直接使用されます。 既定値は FALSE です。
-
D3DRS_POINTSCALE_A
-
ポイント プリミティブの距離ベースのサイズ減衰を制御する浮動小数点値。 D3DRS_POINTSCALEENABLEが TRUE の場合にのみアクティブです。 既定値は 1.0f です。 この値の範囲が 0.0f 以上です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、アプリケーションは値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_POINTSCALE_A, *((DWORD*)&pointScaleA));
-
D3DRS_POINTSCALE_B
-
ポイント プリミティブの距離ベースのサイズ減衰を制御する浮動小数点値。 D3DRS_POINTSCALEENABLEが TRUE の場合にのみアクティブです。 既定値は 0.0f です。 この値の範囲が 0.0f 以上です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、アプリケーションは値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_POINTSCALE_B, *((DWORD*)&pointScaleB));
-
D3DRS_POINTSCALE_C
-
ポイント プリミティブの距離ベースのサイズ減衰を制御する浮動小数点値。 D3DRS_POINTSCALEENABLEが TRUE の場合にのみアクティブです。 既定値は 0.0f です。 この値の範囲が 0.0f 以上です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、アプリケーションは値を含む変数をキャストする必要があります。
m_pDevice9->SetRenderState(D3DRS_POINTSCALE_C, *((DWORD*)&pointScaleC));
-
D3DRS_MULTISAMPLEANTIALIAS
-
マルチサンプル レンダー ターゲット バッファーを使用する場合の個々のサンプルの計算方法を決定する bool 値。 TRUE に設定すると、複数のサンプルが計算され、複数のサンプルごとに異なるサンプル位置でサンプリングによってフルシーンアンチエイリアシングが実行されます。 FALSE に設定すると、複数のサンプルはすべて同じサンプル値で書き込まれ、ピクセルの中心でサンプリングされます。これにより、マルチサンプル バッファーに対してアンチエイリアス化されていないレンダリングが可能になります。 このレンダリング状態は、1 つのサンプル バッファーにレンダリングする場合には影響しません。 既定値は TRUE です。
-
D3DRS_MULTISAMPLEMASK
-
このマスク内の各ビットは、少なくとも重要なビット (LSB) から始まり、マルチサンプル レンダー ターゲット内のサンプルの 1 つの変更を制御します。 したがって、8 サンプルのレンダー ターゲットの場合、下位バイトには 8 つのサンプルごとに 8 つの書き込みイネーブルが含まれます。 このレンダリング状態は、1 つのサンプル バッファーにレンダリングする場合には影響しません。 既定値は 0xFFFFFFFF です。
このレンダリング状態により、マルチサンプル バッファーを累積バッファーとして使用でき、各パスでサンプルのサブセットが更新されるジオメトリのマルチパス レンダリングが実行されます。
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.0 です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、値を含む変数をキャストする必要があります。
m_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
-
tween 係数を制御する float 値。 既定値は 0.0f です。 IDirect3DDevice9::SetRenderState メソッドは DWORD 値を受け取るため、次のコード例に示すように、値を含む変数をキャストする必要があります。
m_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 です。 「テセレーション (Direct3D 9)」を参照してください。
-
D3DRS_MAXTESSELLATIONLEVEL
-
最大テセレーション レベル。 既定値は 1.0f です。 「テセレーション (Direct3D 9)」を参照してください。
-
D3DRS_ADAPTIVETESS_X
-
x 方向に適応的にテセレートする量。 既定値は 0.0f です。 アダプティブ テセレーションに関するページを参照してください。
-
D3DRS_ADAPTIVETESS_Y
-
適応的にテセレートする量(y 方向)。 既定値は 0.0f です。 「Adaptive_Tessellation」を参照してください。
-
D3DRS_ADAPTIVETESS_Z
-
z 方向に適応的にテセレートする量。 既定値は 1.0f です。 「Adaptive_Tessellation」を参照してください。
-
D3DRS_ADAPTIVETESS_W
-
w 方向にアダプティブテセレートする量。 既定値は 0.0f です。 「Adaptive_Tessellation」を参照してください。
-
D3DRS_ENABLEADAPTIVETESSELLATION
-
アダプティブ テセレーションを有効にする場合は TRUE、 無効にするには FALSE 。 既定値は FALSE です。 「Adaptive_Tessellation」を参照してください。
-
D3DRS_TWOSIDEDSTENCILMODE
-
TRUE を指定 すると両面ステンシルが有効になり、 FALSE の場合は無効になります。 既定値は FALSE です。 両面ステンシル モードを有効にするには、アプリケーションで D3DRS_CULLMODE を D3DCULL_NONE に設定する必要があります。 三角形の巻き順が時計回りの場合は、D3DRS_STENCIL* 演算が使用されます。 巻き順が反時計回りの場合は、D3DRS_CCW_STENCIL* 演算が使用されます。
両面ステンシルがサポートされているかどうかを確認するには、D3DCAPS9 for D3DSTENCILCAPS_TWOSIDED の StencilCaps メンバーをチェックします。 D3DSTENCILCAPS も参照してください。
-
D3DRS_CCW_STENCILFAIL
-
CCW ステンシル テストが失敗した場合に実行するステンシル操作。 値は D3DSTENCILOP 列挙型の値です。 既定値は D3DSTENCILOP_KEEP です。
-
D3DRS_CCW_STENCILZFAIL
-
CCW ステンシル テストに合格し、z テストが失敗した場合に実行するステンシル操作。 値は D3DSTENCILOP 列挙型の値です。 既定値は D3DSTENCILOP_KEEP です。
-
D3DRS_CCW_STENCILPASS
-
CCW ステンシルと z テストの両方に合格した場合に実行するステンシル操作。 値は D3DSTENCILOP 列挙型の値です。 既定値は D3DSTENCILOP_KEEP です。
-
D3DRS_CCW_STENCILFUNC
-
比較関数。 ((ref & mask) ステンシル関数 (ステンシル マスク)) が TRUE の場合、CCW ステンシル & テストは合格します。 値は D3DCMPFUNC 列挙型の値です。 既定値は D3DCMP_ALWAYS です。
-
D3DRS_COLORWRITEENABLE1
-
デバイスの追加の ColorWriteEnable 値。 「D3DRS_COLORWRITEENABLE」を参照してください。 この機能は、D3DPMISCCAPS_INDEPENDENTWRITEMASKS機能ビットがデバイスの D3DCAPS9 構造体の PrimitiveMiscCaps メンバーに設定されている場合に使用できます。 既定値は 0x0000000f です。
-
D3DRS_COLORWRITEENABLE2
-
デバイスの追加の ColorWriteEnable 値。 「D3DRS_COLORWRITEENABLE」を参照してください。 この機能は、D3DPMISCCAPS_INDEPENDENTWRITEMASKS機能ビットがデバイスの D3DCAPS9 構造体の PrimitiveMiscCaps メンバーに設定されている場合に使用できます。 既定値は 0x0000000f です。
-
D3DRS_COLORWRITEENABLE3
-
デバイスの追加の ColorWriteEnable 値。 「D3DRS_COLORWRITEENABLE」を参照してください。 この機能は、D3DPMISCCAPS_INDEPENDENTWRITEMASKS機能ビットがデバイスの D3DCAPS9 構造体の PrimitiveMiscCaps メンバーに設定されている場合に使用できます。 既定値は 0x0000000f です。
-
D3DRS_BLENDFACTOR
-
アルファ ブレンド中に一定のブレンドファクターに使用される D3DCOLOR。 この機能は、D3DCAPS9 の SrcBlendCaps メンバーまたは D3DCAPS9 の DestBlendCaps メンバーでD3DPBLENDCAPS_BLENDFACTOR機能ビットが設定されている場合に使用できます。 「D3DRENDERSTATETYPE」を参照してください。 既定値は0xffffffffです。
-
D3DRS_SRGBWRITEENABLE
-
レンダー ターゲットの書き込みを sRGB にガンマ修正できるようにします。 形式は、D3DUSAGE_SRGBWRITEを公開する必要があります。 既定値は 0 です。
-
D3DRS_DEPTHBIAS
-
深度値の比較に使用される浮動小数点値。 「深度バイアス (Direct3D 9)」を参照してください。 既定値は 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 列挙型の 1 つのメンバー。 D3DRS_SEPARATEALPHABLENDENABLEが TRUE でない限り、この値は無視されます。 既定値は D3DBLEND_ONE です。
-
D3DRS_DESTBLENDALPHA
-
D3DBLEND 列挙型の 1 つのメンバー。 D3DRS_SEPARATEALPHABLENDENABLEが TRUE でない限り、この値は無視されます。 既定値は D3DBLEND_ZERO です。
-
D3DRS_BLENDOPALPHA
-
レンダリング状態 (D3DRS_SEPARATEALPHABLENDENABLE) が TRUE に設定されている場合に、個別のアルファ ブレンドに適用される算術演算を選択するために使用される値。
有効な値は、 D3DBLENDOP 列挙型によって定義されます。 既定値は D3DBLENDOP_ADD です。
D3DPMISCCAPS_BLENDOP デバイス機能がサポートされていない場合は、D3DBLENDOP_ADDが実行されます。 「D3DPMISCCAPS」を参照してください。
-
D3DRS_FORCE_DWORD
-
この列挙を強制的に 32 ビットのサイズにコンパイルします。 この値がないと、一部のコンパイラでは、この列挙を 32 ビット以外のサイズにコンパイルできます。 この値は使用されません。
解説
レンダリングの状態 | テクスチャ サンプラー |
---|---|
ps_1_3にps_1_1する | 4 つのテクスチャ サンプラー |
Direct3D では、(D3DRS_WRAP n のいずれかの状態値を明示的に使用するのではなく) テクスチャ座標セットの 0 から始まる整数に基づいて、アプリケーションがテクスチャ ラッピングを有効または無効にするための利便性として、D3DRENDERSTATE_WRAPBIAS定数を定義します。 次の例に示すように、テクスチャ座標セットの 0 から始まるインデックスに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)
要件
要件 | 値 |
---|---|
ヘッダー |
|
関連項目