短い:
すべてのシェーダーが使用できる関数を定義できますか? それとも、シェーダーごとに定義する必要がありますか?
一部始終:
入力フラグメントを定義済みのグラデーション ランプ (このようなもの - http://www.thinkboxsoftware.com/storage/krakatoa-support-images/krakatoa15_kcm_densitybyage_gradientrampmap.pngのようなもの)で色付けすることを目的とした多数のシェーダーを作成したいと考えています。
各シェーダーのグラデーション ランプ定数を定義したい(アルファ値がグラデーション位置を保持する vec4 カラー サンプルの配列。上の図の Pos を参照)
そして、特定のテクスチャ座標位置の特定のグラデーション ランプからカラー サンプルを返すことができる関数が必要です。
したがって、ランプはシェーダーごとに 1 回定義する必要があり、関数はすべてのシェーダーが安全に使用できるように一度に定義する必要があります。
私はアルゴリズムを持っています。問題は関数を共有することであり、GLSL で定数を定義します。
これは可能ですか?または、関数をすべてのシェーダーにコピーする必要がありますか? 少なくともプリコンパイルオプションはありますか?