3D engine... Much interest?

My issue at the moment is that I’ve either misunderstood how UV mapping works, or Corona has a bug in its UV mapping algorithms…

Taking just the top face of the cube, this is constructed from a mesh of currently 4 vertices, and UVs mapping each of those vertices to the image corners. I’d expected from my basic understanding of 3D modelling (I’m not a designer, but i’ve dabbled) that the image would be rendered to the whole face, using the UVs to skew appropriately. If this was the case, I’d have gotten the same result as with the most recent screenshot, which is a quad skewed rect instead.

But it seems that actually, UV mapping renders the image separately to each triangle, and the skew to do that seems to keep the image as a parallelogram. In other words, using a mesh my trapezoid is constructed of a triangle in the top left and a triangle in the bottom right. The top left triangle passes the vertices that are mapped to the top left, top right, and bottom left of the image and the bottom right triangle passes the vertices mapped to the top right, bottom left, and bottom right. Corona, rightfully or not, is therefore calculating a position for the remaining corner that keeps the image sides parallel, then taking a triangular crop for the render, and doing this for each of the two triangles.

Is this the expected behaviour or should the image actually be rendered to the face as a whole, using all of the face UVs for the skew?

If UVs had worked how I expected, then recreating the cubes with 98 vertices instead of 8 (1 vertex per corner, 3 per each side between the corners, and 9 inside each face) would have allowed for 4 rows of perspective to each face, which would create a reasonable perspective when rendering a checkerboard to that top face. Unlike with the quad skewed image test which, unsurprisingly since it has no UVs, just results in a uniform skew.