2
$\begingroup$

I'm trying to create an elliptic spotlight, but scaling the spotlight in one axis, while it seems to do what I want in the viewport, in rendered view the lit area stays circular, both in cycles and blender internal.

enter image description here

This bug suggests that the approach of scaling the lamp should work. What am I doing wrong?

P.S. I know that I can assign textures to spot lights in cycles and that should do the trick, however it's a hassle and I'd prefer to avoid it.

$\endgroup$
1
$\begingroup$

The light is a source of emission and can not be scaled. While the dotted line helper is forced to conform to the scale, the render will ignore it.

Two possible ez solutions:

1.) Use a stencil and shadows. literally make a plane with an oval shape in it and place it in front of the light. Make sure shadows are enabled. You can make the plane only cast shadows so that it will not appear in the render.

2.) Shine the light at a different angle. Like pointing a flashlight almost parallel against a wall, the shape of the light will appear to stretch as the light travels further and further to reach the wall's surface.

$\endgroup$
2
  • $\begingroup$ I agree with your first solution, but your second solution means that the specular and shadows will be placed differently to what is wanted. $\endgroup$ – christai Feb 25 '17 at 8:02
  • $\begingroup$ Then why did they close that bug? It clearly states that it's possible to create elliptical spots with scaling. $\endgroup$ – qwazix Feb 25 '17 at 14:20
0
$\begingroup$

After seeing the answers to this question, I realized that the easiest way to create an elliptical spotlight is to scale the coordinates of a spherical gradient texture, like this.

oval spotlight

In the screenshot I have also scaled the spot by the same amount on the X axis so that the dotted line and final lit area correspond.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.