Version: Unity 6.0 (6000.0)
言語 : 日本語
ShaderLab: 古いテクスチャ合成
HLSL semantics reference

ShaderLab: 古い頂点データチャンネルマッピング

ノート: このページの ShaderLab 機能は古い機能であり、後方互換性のためだけに文書化されています。シェーダーのソースファイルに HLSL コードが含まれている場合、Unity はこれらのコマンドを完全に無視します。シェーダーのソースファイルに HLSL コードが含まれていない場合、Unity はインポート時にこれらのコマンドを通常のシェーダープログラムにコンパイルします。

レンダーパイプラインの互換性

機能名 ビルトインレンダーパイプライン ユニバーサルレンダーパイプライン (URP) HD レンダーパイプライン (HDRP) カスタム SRP
レガシー頂点データのチャンネルマッピング はい いいえ いいえ いいえ

概要

BindChannels コマンドを使うと、頂点データのグラフィックスハードウェアへのマッピング方法を指定することができます。デフォルトでは、Unity がバインディングを計算しますが、カスタムのバインディングを使用したい場合もあるでしょう。

例えば、1 つ目のテクスチャステージで使用されるよう設定された 1 つ目の UV と 2 つ目のテクスチャステージで使用されるように設定された 2 つ目の UV をマッピングするか、頂点色を考慮するようハードウェアに指示できます。

構文

BindChannels { Bind "source", target }

ハードウェアの target に頂点データの source マップを指定します。

ソース は、次のうちのいずれかになります:

  • Vertex: 頂点位置
  • Normal: 頂点の法線
  • Tangent: 頂点接線
  • Texcoord: 1つめの UV 座標
  • Texcoord1: 2つめの UV 座標
  • Color: 各頂点の色

ターゲット は、次のうちのいずれかになります。

  • Vertex: 頂点位置
  • Normal: 頂点の法線
  • Tangent: 頂点接線
  • Texcoord0Texcoord1、…: 対応するテクスチャステージに対するテクスチャ座標
  • Texcoord: すべてのテクスチャステージに対するテクスチャ座標
  • Color: 頂点の色

詳細

Unity には、ターゲットと、それにマッピングされるソースに関する制約がいくつかあります。ソースとターゲットは、VertexNormalTangentColor に一致する必要があります。メッシュからのテクスチャ (Texcoord および Texcoord1) はテクスチャ座標のターゲット (すべてのテクスチャステージは Texcoord、指定したステージは TexcoordN) にマッピングできます。

BindChannels に対して、通常、次の 2 つの使用事例があります。

  • 頂点色を考慮するシェーダー。
  • 2 つの UV セットを使用するシェーダー。

// Maps the first UV set to the first texture stage
// and the second UV set to the second texture stage
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord0
   Bind "texcoord1", texcoord1
}
// Maps the first UV set to all texture stages
// and uses vertex colors
BindChannels {
   Bind "Vertex", vertex
   Bind "texcoord", texcoord
   Bind "Color", color
}
ShaderLab: 古いテクスチャ合成
HLSL semantics reference