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 シェーダーの記述 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 [公式]
参考:
#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 [公式]
データ型
- スカラー:
bool
,int
,uint
,dword
,half
,float
,double
- ベクトル:
float2
,float3
,float4
など - マトリックス
- サンプラー
- テクスチャ
- バッファー
- 構造体
ドキュメント:
ユーザー定義型
注意事項
- ユーザー定義型では大文字小文字は区別されない。
ドキュメント:
ユーザー定義型 | Microsoft Learn [公式]
演算子
ドキュメント:
スウィズル
参考:
Per-Component 算術演算 | Microsoft Learn [公式]
キャスト
ドキュメント:
キャストと変換 v9 | Microsoft Learn [公式]
参考:
What Does int(x) or int(value) do in HLSL 2.0? – Stack Overflow
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 [公式]