座標系

仕様
  • DirectX (旧 Direct3D) では、「左手座標系」を用いる。

ドキュメント:

座標系 v9 | Microsoft Learn [公式]

座標変換

種類
  • ワールド変換
  • ビュー変換
  • 投影変換
演算
  • 並進 (Translation)
  • 回転 (Rotation)
  • 拡大縮小 (Scale)
  • 合成 (Multiply)

ドキュメント:

変換パイプライン | Microsoft Learn [公式]

変換 v9 | Microsoft Learn [公式]

DirectXMath プログラミング ガイド | Microsoft Learn [公式]

参考:

表示領域の設定 | so-zou.jp

HLSL mul and D3DXMATRIX order mismatch – Stack Overflow

use mul(vector, matrix) or mul(matrix, vector) in HLSL – Graphics and GPU Programming – GameDev.net

深度バッファ

ドキュメント:

深度バッファー v9 | Microsoft Learn [公式]

プロジェクション変換 v9 | Microsoft Learn [公式]

Z バッファーのパフォーマンス v9 | Microsoft Learn [公式]

深度バイアス

深度オフセットは次の式で計算される。

(深度オフセット) = m * (スロープスケール深度バイアス) + (深度バイアス)

ここで m は次の式で求められる三角ポリゴンの最大深度勾配である。

m = max(abs(dz / dx), abs(dz / dy))
設定
  • スロープスケール深度バイアス (範囲-1.01.0/デフォルト0.0)
  • 深度バイアス (範囲-1.01.0/デフォルト0.0)

ドキュメント:

深度バイアス v9 | Microsoft Learn [公式]

ステンシルバッファ

ステンシル値の操作
  • Keep 現在の値を保持する
  • Zero ゼロクリアする
  • Replace 参照値で置き換える
  • IncrSat 値を 1 だけ増やし、結果をクランプする
  • DecrSat 値を 1 だけ減らし、結果をクランプする
  • Invert 値を反転させる
  • Incr 値を 1 だけ増やす (結果はラップする)
  • Decr 値を 1 だけ減らす (結果はラップする)
ステンシル参照値
  • ステンシル参照値は、通常グラフィックス API により指定される。
    SetStencilRef
  • ピクセルシェーダーにより、描画毎にピクセル単位で書き換えることができる。(※ DirectX 11.3 または 12 以降)
    SV_StencilRef

ドキュメント:

ステンシル バッファの手法 v9 | Microsoft Learn [公式]

シェーダー指定ステンシル参照値 | Microsoft Learn [公式]

参考:

ステンシルバッファ導入 (Unity) – Qiita

ステンシルバッファを使ってオブジェクトをマスクする (Unity) | KENTO

ステンシルバッファって何? | マルペケつくろーどっとコム

ステンシルによるクリッピング描画 | マルペケつくろーどっとコム

How can I mark a pixel in the stencil buffer? – Game Development Stack Exchange

深度テスト/ステンシルテスト

深度テスト
  • DepthEnable 深度テストを有効にするかどうかを指定する
  • DepthWriteMask 深度の書き込みを許可するかどうか指定する
  • DepthFunc 比較に用いる関数を指定する
ステンシルテスト
  • StencilEnable ステンシルテストを有効にするかどうかを指定する
  • StencilReadMask 読み取りマスク
  • StencilWriteMask 書き込みマスク
  • StencilFailOp テスト失敗時の操作
  • StencilDepthFailOp 深度テスト失敗時の操作
  • StencilPassOp テスト通過時の操作
  • StencilFunc 比較に用いる関数を指定する

ドキュメント:

D3D12_DEPTH_STENCIL_DESC 構造体 | Microsoft Learn [公式]

CD3DX12_DEPTH_STENCIL_DESC 構造体 | Microsoft Learn [公式]

D3D12_DEPTH_STENCILOP_DESC 構造体 | | Microsoft Learn [公式]

D3D12_DEPTH_WRITE_MASK 列挙 | Microsoft Learn [公式]

D3D12_COMPARISON_FUNC 列挙 | Microsoft Learn [公式]

D3D12_STENCIL_OP 列挙 | Microsoft Learn [公式]

earlydepthstencil | Microsoft Learn [公式]

テクスチャ

ドキュメント:

テクスクチャーの概要 v11 | Microsoft Learn [公式]

参考:

Texture – Qiita

テクスチャーを使う | Maverick Project

テクスチャ専用機能 | いまさら Direct3D11 入門

ミップマップ (MipMap)

参考:

ミップマップを使ってラフネスのある材質のリフレクションを実装した | My life accelerated

フォグ (Fog)

ドキュメント:

ピクセル霧 v9 | Microsoft Learn [公式]

D3DFOGMODE 列挙 v9 | Microsoft Learn [公式]

霧の種類 v9 | Microsoft Learn [公式]

クォータニオン (Quaternion)

ドキュメント:

四元数関数 – DirectXMath ライブラリ | Microsoft Learn [公式]

2D 描画

参考:

pass coordinates of a vertex as int and not float – Stack Overflow

multiplication matrix-vector in HLSL does not give the correct result – Microsoft Q&A

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA