Shaders¶
Purpose¶
Owns shader templates and pipeline-aware shader generation support used by Snap Studio Pro.
This territory exists to safely support Built-in, URP, and HDRP rendering workflows without requiring all render pipelines to be installed simultaneously.
Owns¶
- Shader template source files
- Generated shader assets
- Pipeline-aware shader generation support
- Render-pipeline-specific shader variants
- Disposable/generated shader outputs
- Shader regeneration workflows
Does NOT Own¶
- Rendering orchestration
- Preview lifecycle ownership
- Export workflows
- Material ownership
- Pipeline detection ownership
- Runtime shader management
Allowed Dependencies¶
Shaders may depend on:
- Unity shader compilation/import systems
- Pipeline-specific shader syntax
- Lightweight generation utilities
Shaders should avoid depending on:
- panel systems
- export systems
- preview systems
- feature orchestration systems
Notes¶
This folder intentionally contains: - source shader templates - pipeline-specific shader variants - shader generation support files
Some shader files are generated automatically based on the currently installed render pipeline.
This architecture exists because Snap Studio Pro supports: - Built-in Render Pipeline - Universal Render Pipeline (URP) - High Definition Render Pipeline (HDRP)
without requiring all render pipelines to exist in the same project simultaneously.
The generation system allows Snap to: - avoid invalid shader imports - avoid missing pipeline compilation errors - safely support multiple Unity rendering environments - reduce pipeline-specific package coupling
Generated shader files are considered disposable artifacts.
Do NOT manually edit generated shaders unless you understand the generation workflow.
If shader behaviour needs to change: - edit the template/source files - regenerate the shaders - avoid patching generated outputs directly
Generated shader cleanup and regeneration behaviour is intentional and part of Snap’s render-pipeline compatibility architecture.
Future Candidates¶
- Continue keeping shader generation pipeline-aware and isolated.
- Maintain explicit separation between templates and generated outputs.
- Avoid embedding workflow orchestration into shader generation systems.
- Continue treating generated shaders as disposable build artifacts rather than hand-maintained assets.