TLDR: How can I align voronoi scattered textures to the surface of a sphere without using UVs?

I am trying to scatter textures on the surface of a sphere using a voronoi texture, and I can't use UV coordinates because it would introduce seams or stretching artifacts.

I can easily generate the vectors using a voronoi "position" output with the "generated" vector subtracted (as is standard I think), but in order to use textures I also need to have them align to the surface of the sphere that they're on, and I can't figure out how to do that.

It feels like it should be simple to use the "Normal" texture coordinate output to rotate & align the individual voronoi vectors, but I can't figure out how and always end up with stretched textures.

Image of node setup used to make voronoi vectors: enter image description here

Image of results with stretched textures on the sides of the sphere: enter image description here

  • $\begingroup$ According to your Image Texture Node, You are using Flat Projection (made for Planes) on a 3D Sphere using Generated coordinates - try changing the projection method to Sphere. Also, try using the Normal Texture Coordinate (Instead of generated), or (even better) go as far as to add a Geometry (Shader) node and use True Normal as your texture coordinate. $\endgroup$ Dec 11, 2022 at 2:39
  • $\begingroup$ Thanks for the reply! Using Normal texture coordinates instead of Generated doesn't really make a difference, only seems to change the scale of the textures, and Sphere instead of Flat makes them even more warped - as far as I know sphere is meant for use with equirectangular textures, and the textures I'm trying to scatter are not equirectangular. $\endgroup$ Dec 12, 2022 at 18:56

1 Answer 1


I found a solution - it's not perfect and does result in a small amount of warping, but it works for what I need at the moment.

enter image description here


You must log in to answer this question.

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