Skip to Content
DocumentationBasicsWorking with Textures

Working with Textures

Textures are the single biggest source of “why does it look wrong?” bugs in URP. Genesis follows Unity’s conventions strictly — sRGB for color, linear for data, no mipmaps for ramps. This page walks through every important import switch and how Genesis interprets the result.

sRGB vs Linear

Color textures are stored in sRGB and decoded to linear when sampled. Data textures (normal, mask, height) live in linear space already. Get this wrong and your lighting math breaks.

Albedo decoded to linear before lighting. Cel bands land where intended.

Albedo stays gamma-encoded. Material reads washed out and overly bright in shadow.

sRGB on (correct)
sRGB off (broken)

A color texture with sRGB on versus off. Drag to compare.

Screenshot

A Unity texture import-settings inspector for a color map, highlighting the sRGB (Color Texture) toggle, Generate Mip Maps checkbox, and compression format.

basics/working-with-textures/import-settings.png

Inspector labelShader propertyTypeDefaultDescription
Albedo / Base_BaseMapTexture2DColor map. Texture Type Default, sRGB on, mip on. Compressed (BC7 desktop / ASTC mobile).
Normal Map_BumpMapTexture2DTangent-space. Texture Type Normal — Unity handles channel packing automatically.
Mask Map_MetallicGlossMapTexture2DLinear-space data packed into 4 channels (R=metal G=AO B=detail A=smooth). sRGB off, mip on.
Height_HeightMapTexture2DSingle-channel grey for height gradients and parallax. sRGB off, mip on.
Ramp_CelRampTexture2D1D color ramp sampled by NdotL. sRGB on, mip off, clamp, bilinear. Mipmaps cause banding.
MatCap_MatCapTexture2DSphere snapshot, always 1:1 aspect. sRGB on, mip on, clamp.
Noise (dissolve, jitter)_DissolveNoiseTexture2DLinear data. sRGB off, mip off — mipmaps soften edges, usually unwanted.
Detail Normal_DetailNormalMapTexture2DTexture Type Normal, same as primary normal.

The Ramp Creator writes 256×4 textures with sRGB-on, mip-off, clamp, bilinear. If you author your own ramps, match those settings exactly or you will see banding at the band edges.

Mipmaps

Mipmaps soften textures at distance and prevent aliasing. They cost roughly 33% memory and are usually worth it for color maps — but not for ramps or noise textures, where blur destroys the effect. Leave mipmaps on for albedo and normals; turn them off for ramps and dissolve noise.

Channel packing

Genesis uses a packed Mask Map to save samplers: R=Metallic, G=Occlusion, B=Detail Mask, A=Smoothness. Use the Texture Channel Packer tool to combine four greyscale maps into one BC7/ASTC texture.

Resolution rules of thumb

  • Hero characters: 2K albedo, 2K normal, 1K mask.
  • Mobile props: 512 albedo, 256 normal, no mask (use sliders).
  • Ramps: always 256x4. Higher is wasted.
  • MatCaps: 256x256 is usually enough; 512 for crisp specular shapes.

Need to repack a third-party mask? The Channel Packer’s Source picker accepts custom channel routing per slot.

Last updated on