The 3D Handbook
Key term

IES profiles and light functions

Measured photometric profiles that give lights a real fixture's shape and falloff, and light functions or cookies that project patterns through a light; setup in UE5, Unity and Godot and what each costs.

lightingenginematerialsoptimisation

An IES profile is a data file that describes how bright a real light fixture is in every direction. Epic calls IES profiles "a lighting industry standard method of diagramming the brightness and falloff of light" (Unreal Engine documentation: IES Light Profiles). A light function (Unreal) or cookie (Unity) is a mask projected through a light, such as the shadow of a window frame. Both shape a light without extra geometry, and both work as multipliers on the light's output (Unreal Engine documentation: IES Light Profiles; Unity documentation: Understand IES light profiles).

These are tools of real-time lighting. They matter most in interiors and night scenes, where the shape of each lamp's light on walls and floors tells the eye what kind of fixture it is.

#IES photometric profiles

Manufacturers measure their lamps and publish the results as IES files. Frostbite's move to physically based lighting at EA describes it simply: "An IES profile can be attached to our punctual lights", and profiles "have different intensity depending on the direction"; they can come from manufacturers' websites or be authored by artists (SIGGRAPH 2014 Physically Based Shading course: Moving Frostbite to Physically Based Rendering).

In practice an IES profile gives a downlight its characteristic scallop on a nearby wall, a sharp cut-off at the edge of its beam, and brighter or darker rings. A plain spot light gives a smooth cone.

Left, a side-view polar plot below a fixture. A dashed circle shows a plain light's smooth distribution; an orange two-lobed batwing shape shows a measured IES profile with peaks off to each side. Right, a grey wall seen from the front with an orange scallop of light below a fixture, narrow at the top and pointed at the bottom.
An IES profile records intensity by angle (left). On a wall close to the fixture it produces the familiar scallop with a defined edge (right), which a plain spot light cannot reproduce.Diagram by the handbook author

Unreal stores the profile as a 1D gradient that multiplies the light's brightness rather than as an ordinary texture, and it works on Point, Spot and Rect lights (Unreal Engine documentation: IES Light Profiles). Unity HDRP supports IES on Point, Spot (Cone, Pyramid, Box) and rectangular Area lights (Unity documentation: Understand IES light profiles).

#Light functions and cookies

A light function is a material that masks or filters a light's intensity (Unreal Engine documentation: Light Functions). Unity's cookies do the same with a texture; Unity lists effects such as "caustics, soft shadows, and light shapes", including "light entering from a window" (Unity Manual: Cookies). Godot calls the same idea a projector texture, which multiplies the light's colour by the texture at each point (Godot Engine documentation: 3D lights and shadows).

Left, a square cookie texture showing a black window frame with four white panes. An arrow labelled multiplies points to a spot light above a grey floor, on which four orange panes of light appear in perspective, separated by grey frame shadows.
A cookie or light function multiplies the light. White areas pass light, black areas block it, so a small window-frame texture produces a convincing window pattern on the floor with no window geometry.Diagram by the handbook author

Typical uses:

Two views of a spot light shining on a grey floor between blue boxes. On the left, labelled No projector, the light makes a plain white pool. On the right, labelled With projector, the pool shows a blue Godot robot logo inside soft rainbow-coloured rings.
A projector (Godot's name for a cookie) on a spot light. The texture multiplies the light's colour, so the pool takes on the logo and rings; the documentation notes that lights usually look darker once a projector is assigned, so you may need to raise Energy. Screenshot from Godot.Godot Engine documentation (Juan Linietsky, Ariel Manzur and the Godot community), CC BY 3.0

#What they cost

The two techniques have very different costs.

#How to set one up

#Unreal Engine 5

  1. Import the IES file with Add, drag-and-drop or the context menu (Unreal Engine documentation: IES Light Profiles).
  2. Assign it. Select a Point, Spot or Rect Light and set the profile in the IES Texture slot under Light Profiles (Unreal Engine documentation: IES Light Profiles).
  3. Choose intensity. Enable Use IES Intensity for the profile's brightness, then adjust IES Intensity Scale if needed (Unreal Engine documentation: IES Light Profiles).
  4. Make a light function. Create a material, set Material Domain to Light Function, and connect your mask to Emissive Color (Unreal Engine documentation: Light Functions).
  5. Apply it to a Movable or Stationary light. Set Light Function Scale, a Fade Distance to hide distant aliasing, and a Disabled Brightness that matches the mask's average brightness (Unreal Engine documentation: Light Functions).
  6. For coloured light functions with the atlas, switch the atlas format to 8 bits RGB and enable Deferred Lighting Uses Light Function Atlas; coloured functions then work with volumetric fog and Lumen GI and reflections (Unreal Engine documentation: Light Functions).

#Unity HDRP

  1. Import the .ies file. The importer "automatically creates a Light Prefab" with the profile and the correct intensity (Unity documentation: Understand IES light profiles).
  2. Drag the prefab into the Scene view or Hierarchy and adjust the colour temperature (Unity documentation: Understand IES light profiles).
  3. Add a cookie texture to the light if you also need a pattern; the profile and cookie can be combined and baked (Unity documentation: Understand IES light profiles; Unity Manual: Cookies).

#Godot 4

  1. Enable shadows on the OmniLight3D or SpotLight3D; projectors need them (Godot Engine documentation: 3D lights and shadows).
  2. Assign a projector texture. Spot projectors use a normal texture, mapped much like a decal; omni projectors need "a special 360° panorama mapping" (Godot Engine documentation: 3D lights and shadows).
  3. Raise Energy, because lights usually look darker once a projector is assigned (Godot Engine documentation: 3D lights and shadows).
  4. The Godot lights documentation does not mention IES profiles, so approximate a fixture's shape with a projector texture instead (Godot Engine documentation: 3D lights and shadows).

#Video tutorials

#In different tools

Engine IES profiles Projected patterns Notes
Unreal Engine 5 Point, Spot, Rect lights; IES Texture slot (Unreal Engine documentation) Light Function materials, Light Function Atlas (Unreal Engine documentation) Light functions need Movable or Stationary lights
Unity HDRP Point, Spot, rectangular Area; importer creates a prefab (Unity documentation) Cookies (Unity Manual) Profile and cookie can be baked into lightmaps
Godot 4 Not mentioned in the docs (Godot Engine documentation) Projector textures on omni and spot lights with shadows Omni projectors need panorama textures

#Further reading and watching

References

  1. Epic Games · IES Light Profiles · Unreal Engine documentation · docs · accessed 2026-10-22
  2. Unity Technologies · Understand IES light profiles (HDRP 17) · Unity documentation · docs · accessed 2026-10-22
  3. Sébastien Lagarde and Charles de Rousiers (EA Frostbite) · Moving Frostbite to Physically Based Rendering (slides) · SIGGRAPH 2014 Physically Based Shading course, 2014 · talk · accessed 2026-10-22
  4. 80 Level · Procedural IES Light Profile Generator for Artists · 80 Level (seen in search results) · article · accessed 2026-10-22
  5. Epic Games · Light Functions · Unreal Engine documentation · docs · accessed 2026-10-22
  6. Unity Technologies · Cookies · Unity Manual (Unity 6) · docs · accessed 2026-10-22
  7. Godot Engine contributors · 3D lights and shadows · Godot Engine documentation (source on GitHub) · docs · accessed 2026-10-22
  8. renderBucket · Unreal Engine 5 IES Lights Tutorial | Create Realistic Light Falloff · YouTube · video · accessed 2026-10-22

Last updated 2026-10-22