GLSL には完全な C スタイルのプリプロセッサがあります。機能しないのは #include だけです。優れた機能の 1 つは、#ifdef を使用して関数をコメント アウトし、特定の機能が使用されていない場合に間引くことができる 1 つのシェーダーを作成できることです。
私の質問は:
C コードからマクロを定義する方法はありますか?
openGL インターフェイスでそれを行う方法はないようです。簡単なハックは、コードがフォーム ファイルをロードする前に #define FOO を数行追加することです。しかし、それは一種の後退のようです。