Unity では、シェーダープログラムを記述するために HLSL というプログラミング言語を使用します。
このセクションでは、HLSL を Unity 固有の方法で使用するための情報を提供します。HLSL の記述に関する一般的な情報については、上位レベル シェーダー言語 (HLSL) を参照してください。
ノート: Unity はもともと Cg 言語 を使用していました。そのため、Unity のキーワード (CGPROGRAM
) やファイル拡張子 (.cginc
) の名前になっています。Unity はもう Cg を使っていませんが、これらの名前はまだ使われています。
HLSL コードは、ShaderLab コードのコードブロック内に配置します。通常はこのような形になります。
Pass {
// ... 通常のパス状態設定 ...
HLSLPROGRAM
// このスニペットのコンパイルディレクティブ。例:
#pragma vertex vert
#pragma fragment frag
// シェーダープログラム自体
ENDHLSL
// ... パスの残り部分 ...
}
シェーダーコードブロックの詳細については、ShaderLab: シェーダープログラムを加える を参照してください。
HLSL には、古い DirectX 9 スタイルと、より新しい DirectX 10 以降のスタイルの 2 つの構文があります。その違いは、主にテクスチャサンプリング関数の動作にあります。
Unity では、これらの違いを管理するのに役立つプリプロセッサーマクロを含むシェーダーライブラリを提供しています。詳細については、ビルトインシェーダーマクロ を参照してください。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.