Limitations
This document lists known design constraints and technical limitations of Summon Style: Hardline.
These are intentional trade-offs made to support performance, determinism, and stylized rendering.
Camera-Dependent Light Selection
The environment lighting system only samples point lights relative to Camera.main.
The logic controller (LogicControllerEnvironment) selects the closest point lights to the main camera and uploads them to shaders.
Lights that are far from the main camera or only visible to a secondary camera may not contribute.
This can cause issues when:
- Using multiple active cameras
- Using shadow-casting point lights for occlusion on secondary cameras
- Running split-screen or picture-in-picture setups
Lights near the main camera will always take priority, even if another camera is rendering a different area.
Lights Are Not Illumination Sources
Unity lights do not function as traditional lighting sources.
Point lights are used only for:
- Shadow occlusion
- Stylized additive environment shading
They do not emit physically based light into the scene.
This is a design constraint that allows:
- Stable visual style
- Predictable color control
- Performance scaling
Designers can remove or soften environment lighting by placing lights, such as:
- Lamps
- Torches
- Fireplaces
- Interior fixtures
These do not brighten objects directly; they modify how the environment lighting and shadow layers behave.
Projects that require physically accurate local lighting are not a match for this system.
Limited Number of Active Lights
Only a fixed number of point lights are sent to shaders at any time.
The maximum is:
StyleControllerEnvironment.MaxAdditionalLights = 8
Only the closest lights to the main camera are used.
Scenes with many lights may experience:
- Popping as lights enter and leave the active set
- Non-intuitive occlusion if many lights are clustered
This is intentional to keep shader cost bounded.
Global Style State
All style values are global shader parameters.
There is:
- One environment
- One skybox
- One outline configuration
It is not possible to have:
- Per-camera styles
- Per-area skyboxes
- Different outline settings per object
Regional variation must be implemented by blending styles over time or distance.
Per-Object Lighting and Probes
Hardline does not support traditional per-object or probe-based lighting.
This means:
- Light probes
- Reflection probes
- Per-object light lists
- Per-object light attenuation
are not used by the shading system.
All lighting is evaluated from global environment and shadow data.
However, materials can opt in or out of this global influence.
Shader graphs include controls that allow materials to:
- Reduce or remove environment light influence
- Reduce or remove shadow contribution
This allows specific materials (UI meshes, emissive objects, decals, effects, etc.) to ignore or override the global environment while still using the Hardline pipeline.
Presets Are Snapshots
SSHStyleAsset stores snapshots of style data.
They do not:
- Store animation
- Store curves
- Store procedural behavior
They are intended for:
- Instant switching
- Manual blending
- Runtime interpolation systems (as in the demo)
Shader Graph and URP Dependency
Hardline relies on:
- Unity URP
- Custom Shader Graph assets
- Custom HLSL include files
It does not support:
- Built-in render pipeline
- HDRP
- Third-party lighting frameworks
Post-Processing Integration
Outlines and skybox are implemented using custom full-screen passes.
Other post-processing effects may:
- Render before Hardline
- Render after Hardline
- Interfere with depth or normal buffers
Compatibility with external post-processing stacks is not guaranteed.
Not Physically Based
The system does not simulate:
- Energy conservation
- Real light falloff
- Surface roughness
- Metallic response
Materials are driven by:
- Color ramps
- Masks
- Shadow bands
- Style parameters
Projects that require realistic lighting should not use this pipeline.
Asset-Driven State
All live values come from a single SSHSystemAsset.
This means:
- Changes affect the entire scene
- Undo/redo operates on one shared asset
- Runtime and edit-mode share the same state
Multiple simultaneous style states are not supported without multiple managers.
Requests and Extensions
These limitations describe the current system design, not hard restrictions on what is possible.
If a project requires functionality outside these boundaries, support can be contacted with:
- A description of the use case
- What behavior is needed
- Why the current system is insufficient
If enough demand exists for a feature or workflow, additional systems or extensions can be built to relax or remove specific limitations.