geometry – Finding the position of a point inside a triangle, based on the position of a point in another triangle

I’m trying to translate a UV coordinate into a world coordinate. (this is not in a shader, it’s in GDScript in Godot, to bake out a texture based on some raycasts).

So I find out which triangle in the UV map the coordinate is in and then I find the corresponding triangle in the mesh and get it’s world position, that’s all good.

But then I can’t figure out how to translate the points relative position inside the UV triangle to the mesh triangle.

I’ve been trying to use the distance from the point to each of the triangle points as weights to how much of each of the mesh points I should use to find the point I’m looking for, but having no luck.

Any help would be much appreciated.

Not sure how best to illustrate this. But imagine you had a triangle where you knew the corner points a, b, and c, and a position inside it p. And you had another triangle where you knew the corner points A, B and C, how would you find a point that was relative in the same as p is to abc in triangle ABC.

enter image description here