D3DX での線描画のサポート (Direct3D 9)

D3DX は、ヘルパー サービスを提供するユーティリティ ライブラリです。 これは、Direct3D コンポーネントの上のレイヤーです。

D3DX では、1 ピクセル幅のアンチエイリアシングされた線がサポートされます。 線パターンはサポートされなくなりました。

線描画ライブラリは、テクスチャの三角形を使用して線をエミュレートし、次のことを前提としています。

  • ハードウェアは、Direct3D 9 インターフェイスを介して使用できます。
  • 少なくとも 1 つのテクスチャ ステージを使用できます。
  • 64 x 64 のテクスチャが使用されます。
  • 次のモードを使用できます。
    • Bilinear フィルタリング
    • クランプ アドレス モード
    • アドレスの折り返しモード
    • アルファ操作のモジュレート
    • アルファ ブレンド (SRCBLEND = SRC_ALPHA、DESTBLEND = INV_SRC_ALPHA)
    • アルファ ブレンドが使用できない場合のアルファ テスト。低品質の結果

マルチサンプル レンダー ターゲットでのアンチエイリアスされたライン レンダリングの場合は、テクスチャポリゴンを生成する ID3DXLine を使用します。 アンチエイリアシングされたライン ラスタライズによって生成されるピクセル カバレッジ値は、ピクセル シェーダーによって計算されたピクセルのアルファ値を調整します。 アンチエイリアシングされた線を描画するには、アプリケーションでアルファ ブレンドを有効にしてから、D3DRS_ANTIALIASEDLINEENABLEのレンダリング状態を TRUE に設定する必要があります。

機能の説明

ライブラリでは、次のライン フィーチャを使用した色付きの線ストリップの描画がサポートされています。各ライン フィーチャは、他の線とは無関係です。

  • [線の幅]
  • 繰り返しを含む行パターン (行パターン カウンターは、各 ID3DXLine::D raw または ID3DXLine::D rawTransform 呼び出しでリセットされます。ライン ストリップの各セグメントではリセットされません。
  • アンチエイリアシング
  • OpenGL スタイルの線

注意

マイタリングはサポートされていません。

 

ライブラリでは、次の場合にのみ、ネイティブのハードウェア線描画のサポート (デバイスで使用可能な場合) が使用されます。

  • 線の幅は 1 です。
  • 線パターンが有効になっていません。

1 ピクセル幅のアンチエイリアシングされた線は、一部のハードウェアでサポートされているため、ライブラリでは、使用可能な場合に使用されます。 D3DCAPS9 構造体の LineCaps メンバーは、線描画プリミティブのハードウェア機能を列挙します。

ソフトウェア線描画を使用すると、各行が四角形に展開され、4 つの頂点がドライバーに送信されます。

各線分は、2 つの三角形で描画されます。 プリミティブの幅は、指定された幅に 1.0 を加えた値であり、追加の行または列のピクセルになる可能性があります。 線が広くなると、テクスチャ内のアンチエイリアス グラデーションがより粗くなり、真ん中に完全に不透明なテクセルがレプリケートされます。 グラデーションはテクスチャの v 方向にエンコードされ、通常は u 方向に沿ってレプリケートされます。 v のテクスチャ アドレス指定モードはクランプです。

リスト内の各線分は、前の終点から開始する個別の線分と見なすことができます。

元の線の長さに平行なエッジに沿ったアンチエイリアシング品質は、線の幅が広くなるにつれて低下します。 32.0 より大きい行幅は、これらのエッジに沿って成果物を示し始めると予想されます。

D3dx