Can you create 'fake centrepoints' for physics so as not to disturb texture coords?

Hi there,

In Cycles have a model of a big piece of rock. The layered rock strata texture is a 3D procedural running right thru the rock using ‘Object’ Texture Coord node.

At mesh level I then chop the rock up into smaller pieces, and each piece keeps it’s continuous rock strata texture so that if you put them back together the texture would match up across them all.

Now I want to used Rigid physics to drop all the pieces onto the ground… BUT to do that you need to set each piece’s centre point to its centre of mass. This then upsets the flow of the texture, but if you don’t do it, the pieces of rock do not tumble correctly.

So, is there a way to do what I want;

keep the texture in its original place despite relocating centre points,
OR
keeping the centre points where they are, but getting physics to recognise centre of mass in some other way?

I could bake the textures, but I want it keep it resolution-free!

Why not translate the coordinates on the material itself?

Hi Tiago,

I did think about that, but each broken-off piece of rock would need to have this done to it (there are hundreds), and the compensation transform for each rock would be different (not an easy increment)… so the workload would be probably more than it is worth. Unless there is a script that could do this automatically?!

I have just had an idea…

I will duplicate all the pieces, and on the duplicates make all the centre points go to centre of mass. I will then set these to not be able to render, and use these to perform the Rigid Body physics, but before any physics thing happens, i will parent each of the corresponding original pieces to the duplicates. As the duplicates have the same shape, just centred centre points, they will ‘drag’ the originals into performing the correct physics! I will let you know how this goes!