Skip to content

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.