Genau das macht Shade-C ja zum Beispiel. Das ganze ist modular aufgebaut und dadurch nur eine Snippet-Sammlung. Wer keinen DOF braucht, inkludiert einfach den zugehörigen Snippet nicht. Wer keinen Terrain-Shader braucht, kommentiert den einfach aus. Das ist optimal und 50x besser als die Gamestudio mtlFX.c.

Genau so würde ich das auch als JCL zusammenstellen. Eine übergeordnete "shader_collection.c", wo dann die einzelnen Untershader inkludiert werden und ohne Probleme nach eigenen Bedürfnissen zusammengestellt werden können. Statt irgendwie alles wild in eine Datei zusammen zu pressen und die Hälfte auch noch von kruden Engine-Internas abhängig zu machen. Den PSSM aktiviert man zum Beispiel durch den shadow_mode. Dadurch ist eine Mischung von Verschiedenen Gamestudio-Schattenarten (zum Beispiel Blob-Schatten für Modell A, Stencil Schatten für Modell B und PSSM für den Außenbereich) in einem Level unmöglich. Völlig unpraktisch.