Maya has a feature called preserve texture. It allows you to transform vertices of an object and basically have the texture "stay in place" in object space. Say I have a plane with unwrapped uvs. With the default implementation if I scale that plane the uv coordinates stay the same, and thus the texture scales with the plane. However with this feature the texture would stay the same size. The texture stays in place also when translating and rotating.

Does this work by transforming the corresponding uvs when we transform the vertices? If so how does one calculate the transformation needed for the corresponding uvs?

  • $\begingroup$ I've never done it, and I've not thought though the details of it, but as a basic first guess, I would presume that they'd just apply to the UVs the inverse transform of whatever transform they're applying to the model-space vertex positions. $\endgroup$ Oct 25 '20 at 19:08
  • $\begingroup$ @NicolBolas Thanks, I guess I could try it out I see if just using the inverse would achieve the effect! However since we work with 2x2 matrices in 2d space, I guess we should use the inverse of transformation along a given plane in object space. Maybe the plane built from the normal of a given face we're transforming. $\endgroup$ Oct 25 '20 at 21:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.