I have a 3D triangular mesh(vertices, indices, uv coords) that I'm rendering to the screen. Let's assume that the UV mapping is one-to-one. I'm trying to find a way to find the 3D position of the point with UV coordinates equal to (0,0). I searched the internet but I only find answers that I don't find convincing.

The solution that I found:

- Find, in UV space, the triangle that contains (0,0).. let's call it

**T**

- Calculate barycentric coordinates for (0,0) with respect to

**T**

- interpolate the 3D positions of

**T**'s vertices using barycentric coords to get the result.

this seems wrong to me. Here's why:

Let

**M**be the mapping between 3D space and UV space that associates UV coords for every vertex.

Let

**A**,

**B**and

**C**be the vertices of

**T**.

Let

**P**be the origin of UV space (

**P**= (0,0) ).

We have

**P = alpha*A + beta*B + gamma*C**(alpha,beta and gamma are the barycentric coords of

**P**with respect to

**T**).

We assumed the UV mapping to be one-to-one, so let

**M°**be the inverse of

**M**.

We have :

**M°(P) = M°(alpha*A + beta*B + gamma*C)**

The solution in question assumes that

**M°**is linear.. if that was the case you can have:

**M°(P) = alpha*M°(A) + beta*M°(B) + gamma*M°(C)**

But that is not the case (correct me if I'm wrong).

So is there a way to find the 3D position of a point with specific UV coords?

Thanks in advance.