[Material] Distribute Texture on Sphere

Hello everyone,

I have a small texture that I want to distribute randomly on a sphere, without UV distortion,
and I have no idea how to do this.
However, it should be possible as far as I know - I just don’t know how.

I already tried using some noise multiplied/added to the world position / texuture coordinate and some other weird stuff.
I guess that the way to go is to get a random point on the sphere (using noise - somehow) and then calculate the right UV coordinates.

It would be really nice if somewould had an example for that!


Unreal 4.7 has this new feature:

Material Function SkyboxImage: Projects an image onto an infinite sphere, useful for putting images in the skybox

and this one:

Material Function TriPlanarCameraVector: Applies a texture to the background, similar to a cubemap but uses the same 2d texture for all sides


Ah, alright, thank you!

I guess SkyboxImage is the function I am looking for.
Do you have any idea how to modify that function so that I can project the texture multiple times?

I cannot think of a good way to do this in the material with a single dot texture. I could see using a multitude of dots in a single texture and using information to rotate the UVs “randomly”.

That being said you could write your dots randomly to a programmatic render texture then use that texture in your material.

If you want it on all sides, also bottom, the TriPlanarCameraVector sounds like the one you need, it also has a Tiling option, the other one has a sclae option.

I think what he wants is to generate a sky field procedurally with his texture being a single dot. With these approaches he would just end up with something like 6 large dots all around the sphere.

Yes, you are right RimmyD - that’s what I want to do.

It would be really cool if someone had a solution for this!

I am having the same problem. Maybe the best way is to do some C++ code to generate a jpg image that is actually the texture you will use in the sphere of the skybox.