Forum

Working with Coordinates

I don’t get the difference between Multiply (3D) and ApplyTransform (Transform). Could anyone please explain?
Also, how do I get the 2D coordinate (meaning it’s x/y-position in the renderer) of some projected 3D coordinate?

i think you have to multiply the 3d position with the camera matrix…

i´d say you have to multiply the 3d position with the inverse of the camera matrix.

maybe gregsn can comment on whether we should obsolete Multiply (3d) or ApplyTransform (Transform). i suspect both of them doing the same…

I am not using a camera. Instead I’m using the view transform and projection transform inputs seperately. So I reckon I have to calcutate the “camera matrix” first.
But how?

the * (Transform) will combine your two matrices.
dont ask me about the right order, but note that ab is not equal ba in this case.

then use Inverse (Transform) to get the inverse. Always use the right input named Source as the input.

Here is a small sample of what I’m trying to do.
Maybe someone could help.

Sample3D_2_2D.v4p (10.4 kB)

it’s like projecting your 3d point with the view and projection matrices into the screen space:

Sample3D_2_2D_2.v4p (12.2 kB)

Thanks Tonfilm!
BTW, have you tried disconnecting the output io-box from ApplyTransform from the input io-box above and then editing the input-values by with the mouse? Strangely it doesn’t work here. Can you confirm this?

confirmed, super strange, and if you move the 3d object, the 2d still follows, even if the connection is deleted…

that’s scary…

Some issues concerning the GUI appear to be very serious.
Having input fields that show wrong content (see this link) or the above might lead to unexpected and almost untraceable errors.