Hello,
I’m trying to create a 2.5D game but with the quads that are larger than (1,1,1)
the axis shifts when the camera gets closer and the position is no longer correct. You can see it in this example, the quad is (4,4,4)
in size and the axis point should be on the ground but the ShaderGraph uses the center of the quad to rotate.
How can I fix it so that the position of the quad doesn’t shift?
Thanks to all the helpers out there!
You are using the wrong node here:

It’s Position
(vertex position)
→ Position Node | Shader Graph | 17.0.1
where it should be Object.Position
(mesh position)
→ Object Node | Shader Graph | 17.0.1
What you need in these billboard-type of shaders is a single “look” direction for every vertex of the mesh and Mesh/Object position gives you that. Using vertex position results in every vertex having slightly different look direction which produces mesh bending for no immediately apparent reason.
Here is an example how you can create your very own “fake” stylize shadows - you can add “shadow” quads that do not face the camera but project themselves on the Y plane to fake shadows:

Files:
→ Shader Graph files to create billboard trees with billboard shadows. Exported from Unity 2023.2 and Shader Graph 16.0.4 · GitHub
To make sure shadows are being drawn always behind tree billboards change shadow material’s Sorting Priority
to a negative value:

Not sure if these stretched shadow pixels for Point
Filter Mode
will fit your style, but even that can be potentially fixed in pixel shader if you need to: