Request for math for floating UV inside an object

does anyone know how to make a UV float around (translate rotate,2 sided) inside an object? sort of like a glass marble, but if the wavy things inside were flat? but in local space so the marble can still roll?

or is it cheaper to just make a render target with a 2nd camera of what would be inside and use that image on a screenspace UV on a sphere? but then that would be harder to figure out where the camera would point if the marble rolled.

Get on the discord and do a search for Luos - Yoeri Vleer who made this, I am sure he can help -


a solution could be, to do the transformation before the uv mapping. You would need recalculated the uvs for every frame in your engine.

@Luos_83 , any ideas?

i guess a good concept would be like, how would you make like a dragonball without bump offset, or extra meshes or, planes inside a ball

it’s more of a math excercise than anything i guess. maybe useful for VR?

I think i was able to do this, but it was screenspace projection and scaled on object size, it just didn’t roll when the ball rolled around

1 Like

I see…I had problems with the offset between the object pos and the screes pace pos, so I was not able to sync those both positions. Do you had any similar issues?

There’s a built-in material function for this: VirtualPlaneCoordinates. Also an ObjectAlignedVirtualPlaneCoordinates variant that might be what you need instead.

By default it gives you UVs that extend infinitely in every direction along the plane, hence the Saturate (clamp 0-1) node before the texture sampler.

oh wow that’s awesome,
never seen this before, now to figure out how to rotate it

Change the value you feed into “Plane Normal Axis” to the direction you want.

1 Like