I’m sure this is something simple.
How do I translate a texture relative to the screen and keep it’s rotate and scale centred?
- Quad with a texture.
- 4 IO boxes. X, Y, Scale and Rotate.
- X and Y to always transform texture relative to the screen (Y - up, X - across).
- Scale and Rotate to always transform from centre of the renderer.
That’s it. Simple I’m sure but it’s had me.
The attached example shows the same transform doing exactly what I need on a quad but gives me an issue on the texture transform.
On the quad, no matter what rotate I place on it my translates are relative to the screen.
On the texture, translates are always relative to the rotation. I need this the translate here to be relative to the screen.
I’m sure there is some simple transform matrix that I need but I can work it out and I’ve looked for it plenty.
Texture&ObjectTransformDifference.v4p (14.9 kB)
I’ve still got issues with this and could do with getting on top of it. It should be so real easy right?
Have you played around with TextureSpace and ProjectionSpace to account for the different coordinate systems of renderer and texture coordinates?
I had a look but couldn’t crack it right away.
yeah had good play with them. Couldn’t get there with using them. I think the answer must like in matrices though. thanks.
for the problem you have in mind exists no direct matrix solution. it is very similar to the problem of rotating a box always around the coordinate system axis, no matter what its current state of rotation is.
but you can solve it with a framedelay feedback of the transformation and only apply differential transformations to it. this means you have to live with relative values as transformation parameters:
Texture&ObjectTransformDifference2.v4p (10.7 kB)
ah, found a solution where only the translation value is relative:
Texture&ObjectTransformDifference3.v4p (11.0 kB)
Ton! thank you tonnes. clever solution.
funny enough relative values are a preference for me on this.