Why is billboard ignored when decomposing a transform

why is billboard ignored when decomposing a transform
see patch

billboardCoordinates.v4p (13.0 kB)

think some transforms cannot be decomposed, and that’s one of that case

i was looking for a more indepth answer rather than stating that its not working. i know its not ;)

i assume that creating a link the datatype “Transform” opens up a pipeline that allows to transport more than just 4x4-matrices in more than one directions.

furthermore i assume that Billboard doesn’t change any matrix; it just adds some infomation, how to treat the 4x4 matrices transmitted via the sam pipeline.

A related question would be:
How is it possible that an ArbitraryPoint (Transform) is able to provide the vertices of a (downwards) connected DX9-primitve?

see patch.

TheyStillKeepSecrets.v4p (4.3 kB)

kalle, i share your assumption. so, the question probably should have been, why does billboard not change the matrix ? or does decompose has access to another matrix ?

just a rough guess:
don’t think, there are many secrets in that datatype rather than the billboard means some matrix multiplication with view transform / projection transform or whatever camerarelated things.
would make sense that you can’t decompose that because data can be arbitrary if the same object ist connected to two different renderers

WithInProjection also works not in all the cases sometimes you have to use inverse from viewtransform, and if you decompose it, matrix would not align. I think Homography is also that case.

Basically all the Within nodes (projection/view…) and billboard are render transforms, so they convolute the transform at render time. They just are flags to tell renderers that they need to be treated differently.

For example, within projection when you have tWVP : WOLRDVIEWPROJECTION in a shader, you send WorldViewProjection to this variable.

If the Within projection flag is set, you just send World (since you ignore other settings).

Same for billboard, if you have Pixel space you need to know the render target size, until you reach a renderer/shader you haven’t got that information.

Homography will not decompose since it’s not a 4x3 matrix, it also uses the 4th column (first and second row), a translate+scale+rotate only uses the first 3 (last one is always 0,0,0,1 )

ha, this thread is nice. i was just about to ask almost the same question as u7angel.

i wondered why Button (3D Quad) does not behave as expected when there is a Billboard (Transform)in the transform-queue. see these screenshots of the modified helppatch of the buttons (if you don’t see it immediately - there’s a little orange rect in the renderer indicating the current mouse position):

only when hovering the original quad both of them will be recognised.

is there an obvious method to use billboards in 3D space and still use them as buttons? i reckon i’m not the first one who needed this…

as vux said… they are render time flags. they don’t even work with plugins, as they cannot know which renderer is connected and so on. so the gui2d nodes for example cannot work with billboard or within nodes…

vux and tonfilm, this all makes sense. it is slightly confusing that these nodes appear as (Transform) like scale/rotate etc.

A useful node for this would be “ApplyRenderTransform (Transform)”, where you can specify view/projection/render size… and it transform your matrices as it would be done on a layer/shader node.

Some kind of simple way to convolute transforms in patch to see what flag does as well.