2 / 4 HLSLの使い方
HLSLを用いることで、GPU上での頂点変換やピクセル処理などを効率的に記述することができます。
しかしながら、HLSLを用いるにはGPUやシェーダーの基本的な知識が必要であり、学習コストが高いだけでなく、ライトやカメラといった基本的な要素を自身で管理しなければなりません。
UnityとHLSL
Unityでのシェーダー作成は通常、HLSLを直接記述するのではなく、ShaderLabを介して行います。
ShaderLabを用いることで、HLSLコードをUnityのシェーダーとして組み込むことができます。
ShaderLabはHLSLコードを組み込むためのラッパー言語で、Unityのマテリアルシステムと統合しやすくなっています。
ShaderLab
ShaderLabは、Unityでシェーダーを記述するためのラッパー言語であり、HLSLコードを組み込むための構造を提供します。
例えばShaderLabでは以下のようにHLSLコードを組み込むことができます。
Shader "Custom/MyShader"
{
SubShader
{
Pass
{
HLSLPROGRAM
// ここにHLSLコードを記述
ENDHLSL
}
}
}ShaderLabを使用することで、Unityのマテリアルシステムとシェーダーを統合しやすくなります。
Unityのシェーダーファイル.shaderは、ShaderLabを介してHLSLコードを組み込む形で記述します。
シェーダーファイルの作成と利用方法
テキストファイルとして拡張子.shaderのファイルを作成し、ShaderLabを介してHLSLコードを組み込む形で記述します。
文法上のエラーが無ければ、Unityは自動的にシェーダーをコンパイルし、マテリアルに適用できる状態にセットアップされます。
Materialの作成とRendererへの割り当て方法はShader Graphと同様です。
注意
Shader Graphは自動的に初期設定済みマテリアルを生成してくれますが、HLSLを直接記述する場合は手動でマテリアルを作成してシェーダーを割り当てる必要があります。