HLSL

Microsoft が開発した DirectX 用のシェーダーを記述するための言語。DirectX 9 で導入され、それ以後も開発が続けられている。

ドキュメント:

上位レベルシェーダー言語 (HLSL) | Microsoft Learn [公式]

概要

Shader Model 4 (DirectX 10)
  • 頂点シェーダー
  • ジオメトリシェーダー
  • ピクセルシェーダー

参考:

High Level Shading Language – Wikipedia

導入

参考:

HLSL で描く画像を Windows Terminal の背景に出来るようになった – Qiita

#6 HLSL の根っこ/最初の最初からやってみる | マルペケつくろーどっとコム

使い方

参考:

HLSL の基本 | yttm-work

基本

ドキュメント:

HLSL シェーダーの記述 v9 | Microsoft Learn [公式]

種類

API
  • SetPixelShader
  • SetGeometryShader
  • SetVertexShader
引数
  • ShaderTarget シェーダーモデルを指定する
    • vs_4_0
    • gs_4_0
    • ps_4_0
  • ShaderFunction シェーダーのエントリポイントとなる関数を指定する
コード例
technique10 Render
{
    pass P0
    {
        SetVertexShader( CompileShader( vs_4_0, VS() ) );
        SetGeometryShader( NULL );
        SetPixelShader( CompileShader( ps_4_0, PS() ) );
    }
}

(出典Microsoft Learn

ドキュメント:

シェーダーの種類 | Microsoft Learn [公式]

効果

ドキュメント:

効果手法の構文 v11 | Microsoft Learn [公式]

効果手法の構文 v10 | Microsoft Learn [公式]

効果変数の構文 v11 | Microsoft Learn [公式]

効果関数の構文 v11 | Microsoft Learn [公式]

効果グループの構文 v11 | Microsoft Learn [公式]

効果の形式 v11 | Microsoft Learn [公式]

効果のレンダリング v10 | Microsoft Learn [公式]

効果のコンパイル v10 | Microsoft Learn [公式]

効果リファレンス v11 | Microsoft Learn [公式]

効果 v9 | Microsoft Learn [公式]

参考:

#7 HLSL による極単レンダリング | マルペケつくろーどっとコム

エフェクトファイルの作りかた | ゲームプログラミング技術集

エフェクトファイル | Game Programming Unit

効果手法 (Techniques)

ドキュメント:

効果手法の構文 v11 | Microsoft Learn [公式]

効果手法の構文 v10 | Microsoft Learn [公式]

手法の適用 v11 | Microsoft Learn [公式]

手法の適用 v10 | Microsoft Learn [公式]

テクニックとパス v9 | Microsoft Learn [公式]

注釈

ドキュメント:

注釈構文 v11 | Microsoft Learn [公式]

変数

ドキュメント:

変数の構文 | Microsoft Learn [公式]

変数 | Microsoft Learn [公式]

セマンティクス

ドキュメント:

セマンティクス | Microsoft Learn [公式]

システム値セマンティクス | Microsoft Learn [公式]

データ型

ドキュメント:

データ型 | Microsoft Learn [公式]

ユーザー定義型

注意事項
  • ユーザー定義型では大文字小文字は区別されない。

ドキュメント:

ユーザー定義型 | Microsoft Learn [公式]

演算子

ドキュメント:

演算子 | Microsoft Learn [公式]

スウィズル

参考:

Per-Component 算術演算 | Microsoft Learn [公式]

キャスト

ドキュメント:

キャストと変換 v9 | Microsoft Learn [公式]

参考:

What Does int(x) or int(value) do in HLSL 2.0? – Stack Overflow

casting – Narkive

How do I cast a float4 to a float[4]? – Game Development Stack Exchange

convert float to int losing precision – Unity Discussions

How to convert float to int preserving bit value – Stack Overflow

RGBA

参考:

Difficulties in converting RGBA to float and back – Game Development Stack Exchange

Converting UINT to float4 – GameDev.net

Data Type Conversion in a Compute Shader – GameDev.net

シェーダーモデル

ドキュメント:

シェーダーモデル 6 | Microsoft Learn [公式]

シェーダーモデル 5.1 | Microsoft Learn [公式]

シェーダーモデル 5 | Microsoft Learn [公式]

シェーダーモデル 4 | Microsoft Learn [公式]

シェーダーモデル 3 | Microsoft Learn [公式]

レンダーターゲット

参考:

Render Target と SV_Target の数が異なる場合 – Qiita

レンダーターゲットとブレンドステート | いまさら Direct3D 11 入門

パイプライン

ドキュメント:

パイプラインとシェーダー v12 | Microsoft Learn [公式]

グラフィックスパイプライン v11 | Microsoft Learn [公式]

パイプラインステージ v10 | Microsoft Learn [公式]

アーキテクチャ v9 | Microsoft Learn [公式]

HDR

ドキュメント:

HDR 照明 v9 | Microsoft Learn [公式]

事前計算済み放射転送 (PRT)

ドキュメント:

事前計算済み放射転送 v9 | Microsoft Learn [公式]

コンパイル

ドキュメント:

シェーダーのコンパイル | Microsoft Learn [公式]

Effect-Compiler Tool (FXC) | Microsoft Learn [公式]

オフラインコンパイル | Microsoft Learn [公式]

構文 – FXC | Microsoft Learn [公式]

最適化

ドキュメント:

HLSL シェーダーの最適化 | Microsoft Learn [公式]

互換性

ドキュメント:

非推奨の機能 v10 | Microsoft Learn [公式]

アップデート

ドキュメント:

新機能 v12 | Microsoft Learn [公式]

v11 と v12 の間の重要な変更点 | Microsoft Learn [公式]

ドキュメント

リファレンス – HLSL | Microsoft Learn [公式]

言語構文 – HLSL | Microsoft Learn [公式]

エラーと警告 – HLSL | Microsoft Learn [公式]

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

上位レベルシェーダー言語 (HLSL) | Microsoft Learn [公式]

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

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

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

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

まとめ

HLSL リファレンスまとめ

プログラマブルシェーダー編 | マルペケつくろーどっとコム

記事をシェアする:

コメントを残す

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

Protected by reCAPTCHA