Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.tomblack.ca/llms.txt

Use this file to discover all available pages before exploring further.

Pixelate ships a dedicated Universal Render Pipeline package — PixelateSRP.unitypackage — that handles URP-specific capture behavior and material setup. This guide walks through everything you need to get lit pixel-art sprites working in a URP project.
1

Install the SRP package

Import PixelateSRP.unitypackage into your Unity project (Assets → Import Package → Custom Package). Do not use Pixelate.unitypackage or PixelateNew.unitypackage in a URP project — those target the Built-in Render Pipeline.
2

Verify URP is set up

Go to Edit → Project Settings → Graphics and confirm a URP asset is assigned to the Scriptable Render Pipeline Settings field.If URP is not yet installed, open the Package Manager (Window → Package Manager), switch to Unity Registry, and install Universal RP.
3

Enable the 2D Renderer

Open your URP Renderer asset. In the Renderer List, make sure a 2D Renderer is present (not only Forward or Deferred renderers). The 2D Renderer is required for 2D lighting and normal maps.
If you created a new 2D URP project, the 2D Renderer is already set up by default.
4

Capture your sprite sheet

Open the Capturing scene from the Pixelate/ folder. Set up the PixelateCaptureManager as described in the Quick Start guide — choose your capture type, assign your target and clips, and set your cell size and FPS.During capture, Pixelate temporarily adjusts QualitySettings.renderPipeline and GraphicsSettings.defaultRenderPipeline per-frame to ensure accurate rendering, then restores them when done.
5

Create a URP material

After capture, create a material for your sprite:
  1. Right-click in the Project window → Create → Material
  2. Set the shader to Universal Render Pipeline/2D/Sprite-Lit-Default
  3. Set Primary Texture to your diffuse sprite sheet (e.g., Character_Idle.png)
  4. Set Normal Map Texture to your normal map (e.g., Character_Idle_NormalMap.png)
Enable Also Create URP Material in your PixelateSettings asset to have Pixelate auto-generate the URP material for you at capture time.
6

Assign the material to your Sprite Renderer

Select your character’s Sprite Renderer component and set the Material field to the URP material you just created.
7

Add 2D lighting to your scene

For the normal map to have any visible effect, your scene needs a 2D light:
  1. In the Hierarchy, right-click → Light → Global Light 2D (or Spot Light 2D, Point Light 2D)
  2. A Global Light 2D acts like a directional ambient light and is the easiest way to verify the normal map is working
  3. Adjust the light’s Intensity and Color to taste
2D lighting only works with the 2D Renderer. If you’re seeing flat, unlit sprites, confirm your URP asset is using the 2D Renderer (not the Universal Renderer).

Character flipping

When your game logic flips a character to face left, rotate the GameObject 180° on the Y axis instead of setting Transform.Scale.x = -1. Negative X scale inverts the normal map’s lighting direction, causing shadows to appear on the wrong side of the character.
// Correct — preserves normal map lighting
transform.rotation = Quaternion.Euler(0f, facingLeft ? 180f : 0f, 0f);

// Incorrect — breaks normal map lighting
transform.localScale = new Vector3(facingLeft ? -1f : 1f, 1f, 1f);

Troubleshooting URP lighting

SymptomLikely causeFix
Sprite appears flat/unlitNo 2D light in sceneAdd a Global Light 2D
Sprite appears fully blackMaterial on wrong rendererCheck URP asset uses 2D Renderer
Normal map has no effectWrong shaderUse Sprite-Lit-Default, not Sprite-Unlit-Default
Lighting inverted on flipScale set to -1Rotate Y 180° instead
Colors look wrong after captureURP pipeline not restoredRe-capture; check no errors in Console