I would like to have area lights with linear or circular gradient, so that the light is more realistic without sharp edges and constant brightness. But as soon as add a mapping node it becomes completely dark (as the bottom image). Is there any way I can add a gradient map on area light?

(I know it can be done with geometry light with emission shader, or a HDR map can be added to an area light - but I am looking for a solution where I can control area light with procedural shader/without an image)

• Did you try Generated or Object coordinates? Lamp object doesn't have UV data Commented Jan 5, 2021 at 19:35
• I tried generated - it stayed the same - ie. black. Just now tried object co-ordinate and it does seem work! I will explore more and post the results here. Thank you!! Commented Jan 5, 2021 at 20:22
• @saicode does the lamp have to be area light? It really is easier to do what you are trying to do another way (a different light). Commented Jan 5, 2021 at 20:26
• If I can get a reflection on the geometry I can use other lights also. Could you explain a bit what you are thinking? Commented Jan 6, 2021 at 5:49

Bonus setup for caustics using normal:

Use the normal if you use spherical gradient change the Z scale to 0 on the mapping

To get a texture on your reflections, you must use Object Coordinates.

• For whatever reason, you also have to select the light ("Light2" in my case) for the Texture Coordinate node so that the light's transforms are transferred to the coordinates in the node tree (usually it's automatic).

• If you want to keep the coordinate values in $$[0,1]$$, make sure that your lamp is set to either Square or Disk with a Size of 1m, and in the node tree, add 0.5 to the $$x$$ and $$y$$.

(You can still make the light with any aspect ratio by changing the object scale.)

# Examples

For the last example, you can reduce the noise and render time by setting the shape to Disk so that the black corners aren't being sampled.