3
$\begingroup$

I would like to create a proceedural texture in which "beams" eminate from the center of an object - think of light beams coming out of a point light source. The following node set-up does this perfectly in 2D: enter image description hereenter image description here

However if applied to a sphere you see that the beams are only eminating from the center on the X/Y plane, not the Z axis.

If the "beams" eminated from the center they would appear as spots on the surface of a sphere like in my example.

Please note: I realise I could use voranoi if spots on the surface are my end goal, but I'm intending to use this texture to control the density parameter of a volume shader, so the solution needs to create "beams" radiating from the center of the object outwards.

$\endgroup$

1 Answer 1

3
$\begingroup$

Try this - it's a bit hackish, but it might work for you. Start by breaking a radial gradient into "slices" using a ColorRamp set to constant. Use as many "white bits" as you need.

Beam1

Take the result and multiply a Normalized wave texture (on the Z-axis) over it to chop up the beams vertically. The Normalize (Vector math) node makes the beam "cones" point on an angle.

Beam2

Lastly, multiply a spherical gradient over the whole thing to give falloff to the edges.

Beam3

Alternatively, you could use a Volume Scatter node (instead of an emission), and place a point light right at the center:

Beam4

$\endgroup$
1
  • $\begingroup$ I was hoping there would be a way to do it by manipulating texture coordinates, but I've not come up with anything better than this approach which does indeed create the effect I'm after. $\endgroup$
    – John
    Commented Dec 19, 2023 at 23:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .