LoginSignup
3
3

More than 5 years have passed since last update.

[Unity,ShaderLab] Too many texture interpolators would be used for ForwardBase passについて

Last updated at Posted at 2018-07-20

Unityでシェーダーを書いていた時に遭遇した、Too many texture interpolators would be used for ForwardBase passについて

Googleで検索をかけたところ英語ばかりだったのでまとめておきます

どの辺で発生するか

頂点シェーダーからフラグメントシェーダーに渡すデータの数が多すぎると発生する

struct Input
{
    float data1;
    float2 data2;
    float2 data3;
    float3 data4;
    float4 data5;
};

どうすればいいのか

Google翻訳でまずは翻訳してみました
ForwardBaseパスに使用されるテクスチャインターポレータが多すぎます(最大10のうち11)

詳しく調べてみたところ
Unityのシェーダーモデルデフォルトは2.5とのこと
そしてshader model 2.5では最大12個のfloatを渡せる
これに引っかかっているっぽい・・・

ちなみに
shader model 3.5は最大32までで、4.0では最大45までもてる
なので解決したい場合は
#pragma target 3.5
#pragma target 4.0
などの必要数に合わせたシェーダーモデルにする

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3