Skip to content

Shadow

Purpose

Owns shadow-related editor workflows, shadow capture request models, shadow material handling, and shadow catcher helper systems for Snap Studio Pro.

This territory coordinates shadow-specific feature behaviour without owning preview scene lifecycle, rendering pipeline implementation, or export orchestration.

Owns

  • Shadow feature workflows
  • Shadow capture request models
  • Shadow catcher material helpers
  • Ground/background material handling
  • Shadow-specific utility logic
  • Shadow catcher setup helpers
  • Shadow debug shader selection

Does NOT Own

  • Preview scene lifecycle ownership
  • Rendering pipeline implementation
  • Export orchestration
  • Capture execution internals
  • Panel UI layout ownership
  • General lighting workflows

Allowed Dependencies

Shadow may depend on:

  • Capture request models
  • Rendering/pipeline-safe shader helpers
  • Unity rendering/material APIs
  • Preview-facing scene objects where required

Shadow should avoid depending on:

  • panel orchestration systems
  • export workflow systems
  • rendering implementation ownership
  • window lifecycle systems

Notes

Shadow is a feature-domain territory.

It owns shadow-specific behaviour and helper systems, but should not become the owner of preview scene lifecycle or rendering pipeline behaviour.

Preview owns: - preview scene objects - preview lifecycle - shadow catcher placement inside the preview scene

Capture/Export own: - when shadow captures are requested - how shadow outputs participate in export workflows

Shadow owns: - shadow-specific request data - material instance safety - shadow helper behaviour

This separation keeps shadow support feature-focused and prevents it from becoming a hidden rendering manager.

Future Candidates

  • Continue isolating shadow-specific behaviour from preview scene lifecycle.
  • Keep material instance ownership explicit and safe.
  • Avoid pushing export orchestration into Shadow.
  • Maintain pipeline-safe shader helper boundaries.