I have a kind of a specific problem that I was not able to find solution for. I am making a software for applying image to 3D model of umbrella. The umbrella model is dynamically created based on some parameters inserted by administrator of the system.
So far, I created the model successfully and applied planar mapping. This works great if you look at the umbrella from the top as there appears to be no distortion.
But, it you look at the model from the side, there is significant distortion of the image happening. The more vertical the side of the umbrella, the more distortion there is, which is completely understandable for planar mapping.
This becomes really apparent when the company that this is being made for prints out the umbrella texture to make actual umbrella of.
What I am looking for is a suggestion for mapping model to use to reduce apparent distortion as much as possible (obviously, there will always be some distortion). Ideally there should uniform distortion across whole umbrella, and not more distortion the more vertical umbrella is, which is happening now with planar projection.
I am not a mathematician so some kind of UV mapping formula formula would be greatly appreciated, but I will take any advice that anyone more experienced has to offer.
EDIT: This is how I calculate UV mapping for vertex now:
public static CalculateUV(vertice: Vector3, maxX: number, maxZ: number): Vector2 {
const u = vertice.x / maxX;
const v = vertice.z / maxZ;
return new Vector2(u, v);
}