Very Specific Blender Voronoi Texture Problem
Posted: January 5th, 2026, 10:14 pm
Ok, so here's my problem that I've been trying to solve off n on for like a year...
I have a UV sphere with a 3d voronoi texture applied to it (with a Texture Coordinate + Mapping etc...). However, because its 3d, it places the cells anywhere in 3d space (ie, NOT on the sphere's surface), and when the flat edges of the cells intersect the sphere you get these curved boundaries. I would like the texture to be relative to the sphere's surface. The obvious solution is to unwrap the sphere are then use 2d voronoi, but in that case its no longer seamless (you get an awful line down one side where the texture stops/starts). Alright, fine ill just use 4d noise on the 2d unwrapped sphere and make it loop, that's pretty easy. Well, unfortunately no, because I only want it to loop in the x direction, not the y direction, and every procedural looping texture I've found requires it to loop in both directions (cuz if you think of a globe/map, the north pole doesn't connect to the south pole, obv). And on top of that all points along the top edge need to be the same cell/color so that it doesn't scrunch up when rolled back into a sphere (and the same for the bottom, obv).
I've tried everything from long math node chains using logs and sins, to using a cube and projecting it onto a sphere (both still had the seam issue), to making my own voronoi texture using geo nodes (colors were strictly assigned to the faces so i couldn't use it for anything procedural (and i never got it working properly anyway...) ).
I don't expect anyone to have an easy solution, lol, but feel free to ask for clarification and whatnot. I figured I'd put it out there just cuz
I've tried everything from long math node chains using logs and sins, to using a cube and projecting it onto a sphere (both still had the seam issue), to making my own voronoi texture using geo nodes (colors were strictly assigned to the faces so i couldn't use it for anything procedural (and i never got it working properly anyway...) ).
I don't expect anyone to have an easy solution, lol, but feel free to ask for clarification and whatnot. I figured I'd put it out there just cuz